openapi: 3.1.0 info: title: Conductor API version: 0.0.1 servers: - url: https://api.conductor.is/v1 security: - BearerAuth: [] paths: /auth-sessions: post: summary: Create an auth session description: >- To launch the authentication flow, create an auth session and pass the returned session's `authFlowUrl` to the client for your end-user to visit in their browser. Demo: https://connect.conductor.is/qbd/demo security: - BearerAuth: [] parameters: [] requestBody: required: true content: application/json: schema: type: object properties: publishableKey: type: string description: >- Your Conductor publishable key, which we use to create the auth session's `authFlowUrl`. example: '{{YOUR_PUBLISHABLE_KEY}}' endUserId: type: string description: >- The ID of the end-user for whom to create the integration connection. example: end_usr_1234567abcdefg linkExpiryMins: default: 30 description: >- The number of minutes after which the auth session will expire. Must be at least 15 minutes and no more than 7 days. If not provided, defaults to 30 minutes. type: number redirectUrl: description: >- The URL to which Conductor will redirect the end-user to return to your app after they complete the authentication flow. If not provided, their browser tab will close instead. example: https://example.com/auth/conductor-callback type: string format: uri required: - publishableKey - endUserId additionalProperties: false responses: '200': description: Returns the auth session object. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/auth_session' x-codeSamples: - lang: JavaScript source: |- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const authSession = await conductor.authSessions.create({ endUserId: 'end_usr_1234567abcdefg', publishableKey: '{{YOUR_PUBLISHABLE_KEY}}', }); console.log(authSession.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) auth_session = conductor.auth_sessions.create( end_user_id="end_usr_1234567abcdefg", publishable_key="{{YOUR_PUBLISHABLE_KEY}}", ) print(auth_session.id) /end-users: post: summary: Create an end-user description: Creates an end-user. security: - BearerAuth: [] parameters: [] requestBody: required: true content: application/json: schema: type: object properties: companyName: type: string description: >- The end-user's company name that will be shown elsewhere in Conductor. example: Acme Inc. sourceId: type: string description: >- The end-user's unique identifier from your system. Maps users between your database and Conductor. Must be unique for each user. If you have only one user, you may use any string value. example: 12345678-abcd-abcd-example-1234567890ab email: type: string description: >- The end-user's email address for identification purposes. Setting this field will not cause any emails to be sent. example: alice@acme.com required: - companyName - sourceId - email additionalProperties: false responses: '200': description: Returns the end-user object after successful end-user creation. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/end_user' x-codeSamples: - lang: JavaScript source: |- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const endUser = await conductor.endUsers.create({ companyName: 'Acme Inc.', email: 'alice@acme.com', sourceId: '12345678-abcd-abcd-example-1234567890ab', }); console.log(endUser.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) end_user = conductor.end_users.create( company_name="Acme Inc.", email="alice@acme.com", source_id="12345678-abcd-abcd-example-1234567890ab", ) print(end_user.id) get: summary: List all end-users description: Returns a list of your end-users. security: - BearerAuth: [] parameters: [] responses: '200': description: >- Returns an object with a `data` property that contains an array of end-user objects. Each entry in the array is a separate end-user object. If no more end-users are available, the resulting array will be empty. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: objectType: description: The type of object. This value is always `"list"`. example: list type: string const: list url: type: string description: The endpoint URL where this list can be accessed. example: /v1/end-users data: type: array items: $ref: '#/components/schemas/end_user' description: The array of end-users. required: - objectType - url - data additionalProperties: false x-codeSamples: - lang: JavaScript source: |- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const endUsers = await conductor.endUsers.list(); console.log(endUsers.data); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) end_users = conductor.end_users.list() print(end_users.data) /end-users/{id}: get: summary: Retrieve an end-user description: Retrieves an end-user object. security: - BearerAuth: [] parameters: - in: path name: id schema: type: string description: The ID of the end-user to retrieve. example: end_usr_1234567abcdefg required: true description: The ID of the end-user to retrieve. responses: '200': description: Returns the end-user object if a valid ID was provided. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/end_user' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const endUser = await conductor.endUsers.retrieve('end_usr_1234567abcdefg'); console.log(endUser.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) end_user = conductor.end_users.retrieve( "end_usr_1234567abcdefg", ) print(end_user.id) delete: summary: Delete an end-user description: Permanently deletes an end-user object and all of its connections. security: - BearerAuth: [] parameters: - in: path name: id schema: type: string description: The ID of the end-user to delete. example: end_usr_1234567abcdefg required: true description: The ID of the end-user to delete. responses: '200': description: >- Returns a confirmation of the deletion with the ID of the deleted end-user. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: id: type: string description: The ID of the deleted end-user. example: end_usr_1234567abcdefg objectType: description: The type of object. This value is always `"end_user"`. example: end_user type: string const: end_user deleted: type: boolean description: Indicates whether the end-user was deleted. example: true required: - id - objectType - deleted additionalProperties: false x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const endUser = await conductor.endUsers.delete('end_usr_1234567abcdefg'); console.log(endUser.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) end_user = conductor.end_users.delete( "end_usr_1234567abcdefg", ) print(end_user.id) /end-users/{id}/passthrough/{integrationSlug}: post: summary: Passthrough description: >- Rare escape hatch for sending raw QuickBooks Desktop qbXML request objects directly. Prefer Conductor's native QuickBooks Desktop endpoints whenever possible: Conductor already exposes more than 250 typed QBD endpoints, covers nearly the entire underlying qbXML API surface, returns all documented response fields in a stable typed JSON shape, and powers Conductor SDK types, documentation, IDE autocomplete, and the API Playground. Use passthrough only when you need one of the few qbXML operations that is not yet available as a native Conductor endpoint, or while testing an unsupported qbXML operation. Known gaps are listed in [Missing QBD types](/api-ref/missing-qbd-types). security: - BearerAuth: [] parameters: - in: path name: id schema: type: string description: The ID of the end-user who owns the integration connection. example: end_usr_1234567abcdefg required: true description: The ID of the end-user who owns the integration connection. - in: path name: integrationSlug schema: type: string enum: - quickbooks_desktop description: The integration identifier for the end-user's connection. required: true description: The integration identifier for the end-user's connection. requestBody: required: true content: application/json: schema: type: object properties: {} additionalProperties: true description: >- The raw qbXML request object to send to the integration connection. For QuickBooks Desktop, use a qbXML request wrapper such as `InvoiceQueryRq` or `CustomerQueryRq`. This body is forwarded directly and does not use Conductor field names. minProperties: 1 responses: '200': description: Returns the raw response from the integration connection. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: {} additionalProperties: true description: >- The raw response from the integration connection. For QuickBooks Desktop, this is the qbXML response converted to JSON. x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const response = await conductor.endUsers.passthrough('quickbooks_desktop', { id: 'end_usr_1234567abcdefg', qbd_payload: { foo: 'bar' }, }); console.log(response); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) response = conductor.end_users.passthrough( integration_slug="quickbooks_desktop", id="end_usr_1234567abcdefg", qbd_payload={ "foo": "bar" }, ) print(response) /quickbooks-desktop/account-tax-lines: get: summary: List all account tax lines description: >- Returns a list of account tax lines. **NOTE:** QuickBooks Desktop does not support pagination for account tax lines; hence, there is no `cursor` parameter. Users typically have few account tax lines. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. responses: '200': description: Returns a list of account tax lines. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: objectType: description: The type of object. This value is always `"list"`. example: list type: string const: list url: type: string description: The endpoint URL where this list can be accessed. example: /v1/quickbooks-desktop/account-tax-lines data: type: array items: $ref: '#/components/schemas/qbd_account_tax_line' description: The array of account tax lines. required: - objectType - url - data additionalProperties: false x-codeSamples: - lang: JavaScript source: |- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const accountTaxLines = await conductor.qbd.accountTaxLines.list({ conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(accountTaxLines.data); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) account_tax_lines = conductor.qbd.account_tax_lines.list( conductor_end_user_id="end_usr_1234567abcdefg", ) print(account_tax_lines.data) /quickbooks-desktop/accounts: get: summary: List all accounts description: >- Returns a list of accounts. **NOTE:** QuickBooks Desktop does not support pagination for accounts; hence, there is no `cursor` parameter. Users typically have few accounts. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: query name: ids schema: description: >- Filter for specific accounts 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: - 80000001-1234567890 type: array items: type: string description: >- Filter for specific accounts 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. - in: query name: fullNames schema: description: >- Filter for specific accounts by their full-name(s), case-insensitive. Like `id`, `fullName` is a unique identifier for an account, formed by by combining the names of its parent objects with its own `name`, separated by colons. For example, if an account is under "Corporate" and has the `name` "Accounts-Payable", its `fullName` would be "Corporate:Accounts-Payable". **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: - Corporate:Accounts-Payable type: array items: type: string description: >- Filter for specific accounts by their full-name(s), case-insensitive. Like `id`, `fullName` is a unique identifier for an account, formed by by combining the names of its parent objects with its own `name`, separated by colons. For example, if an account is under "Corporate" and has the `name` "Accounts-Payable", its `fullName` would be "Corporate:Accounts-Payable". **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. - in: query name: limit schema: description: >- The maximum number of objects to return. **IMPORTANT**: QuickBooks Desktop does not support cursor-based pagination for accounts. 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 accounts without limit, unlike paginated endpoints which default to 150 records. This is acceptable because accounts typically have low record counts. example: 10 type: integer minimum: 1 description: >- The maximum number of objects to return. **IMPORTANT**: QuickBooks Desktop does not support cursor-based pagination for accounts. 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 accounts without limit, unlike paginated endpoints which default to 150 records. This is acceptable because accounts typically have low record counts. - in: query name: status schema: description: Filter for accounts that are active, inactive, or both. example: active type: string enum: - active - all - inactive default: active description: Filter for accounts that are active, inactive, or both. - in: query name: updatedAfter schema: description: >- Filter for accounts 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. example: 2025-01-01T12:34:56.000Z type: string description: >- Filter for accounts 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. - in: query name: updatedBefore schema: description: >- Filter for accounts 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. example: 2025-02-01T12:34:56.000Z type: string description: >- Filter for accounts 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. - in: query name: nameContains schema: description: >- Filter for accounts whose `name` contains this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameStartsWith` or `nameEndsWith`. example: ABC type: string description: >- Filter for accounts whose `name` contains this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameStartsWith` or `nameEndsWith`. - in: query name: nameStartsWith schema: description: >- Filter for accounts whose `name` starts with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameEndsWith`. example: ABC type: string description: >- Filter for accounts whose `name` starts with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameEndsWith`. - in: query name: nameEndsWith schema: description: >- Filter for accounts whose `name` ends with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameStartsWith`. example: ABC type: string description: >- Filter for accounts whose `name` ends with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameStartsWith`. - in: query name: nameFrom schema: description: >- Filter for accounts whose `name` is alphabetically greater than or equal to this value. example: A type: string description: >- Filter for accounts whose `name` is alphabetically greater than or equal to this value. - in: query name: nameTo schema: description: >- Filter for accounts whose `name` is alphabetically less than or equal to this value. example: Z type: string description: >- Filter for accounts whose `name` is alphabetically less than or equal to this value. - in: query name: accountType schema: description: Filter for accounts of this type. example: income type: string enum: - accounts_payable - accounts_receivable - bank - cost_of_goods_sold - credit_card - equity - expense - fixed_asset - income - long_term_liability - non_posting - other_asset - other_current_asset - other_current_liability - other_expense - other_income description: Filter for accounts of this type. - in: query name: currencyIds schema: description: Filter for accounts in these currencies. example: - 80000001-1234567890 type: array items: type: string description: Filter for accounts in these currencies. responses: '200': description: Returns a list of accounts. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: objectType: description: The type of object. This value is always `"list"`. example: list type: string const: list url: type: string description: The endpoint URL where this list can be accessed. example: /v1/quickbooks-desktop/accounts data: type: array items: $ref: '#/components/schemas/qbd_account' description: The array of accounts. required: - objectType - url - data additionalProperties: false x-codeSamples: - lang: JavaScript source: |- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const accounts = await conductor.qbd.accounts.list({ conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(accounts.data); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) accounts = conductor.qbd.accounts.list( conductor_end_user_id="end_usr_1234567abcdefg", ) print(accounts.data) post: summary: Create an account description: >- Creates a new financial account. QuickBooks requires you to pick a supported account type for the chart of accounts, and non-posting types can’t be created through the API. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. requestBody: required: true content: application/json: schema: type: object properties: name: type: string maxLength: 31 description: >- The case-insensitive name of this account. Not guaranteed to be unique because it does not include the names of its hierarchical parent objects like `fullName` does. For example, two accounts could both have the `name` "Accounts-Payable", but they could have unique `fullName` values, such as "Corporate:Accounts-Payable" and "Finance:Accounts-Payable". Maximum length: 31 characters. example: Accounts-Payable isActive: description: >- Indicates whether this account is active. Inactive objects are typically hidden from views and reports in QuickBooks. Defaults to `true`. example: true default: true type: boolean parentId: description: >- The parent account one level above this one in the hierarchy. For example, if this account has a `fullName` of "Corporate:Accounts-Payable", its parent has a `fullName` of "Corporate". If this account is at the top level, this field will be `null`. example: 80000001-1234567890 type: string maxLength: 36 accountType: description: >- The classification of this account, indicating its purpose within the chart of accounts. **NOTE**: You cannot create an account of type `non_posting` through the API because QuickBooks creates these accounts behind the scenes. example: bank type: string enum: - accounts_payable - accounts_receivable - bank - cost_of_goods_sold - credit_card - equity - expense - fixed_asset - income - long_term_liability - non_posting - other_asset - other_current_asset - other_current_liability - other_expense - other_income accountNumber: description: >- The account's account number, which appears in the QuickBooks chart of accounts, reports, and graphs. Note that if the "Use Account Numbers" preference is turned off in QuickBooks, the account number may not be visible in the user interface, but it can still be set and retrieved through the API. example: '1010' type: string bankAccountNumber: description: >- The bank account number or identifying note for this account. Access to this field may be restricted based on permissions. example: '123456789' type: string description: description: A description of this account. example: >- Accounts-payable are the amounts owed to suppliers for goods and services purchased on credit. type: string openingBalance: description: >- The amount of money in, or the value of, this account as of `openingBalanceDate`. On a bank statement, this would be the amount of money in the account at the beginning of the statement period. example: '1000.00' type: string openingBalanceDate: description: >- The date of the opening balance of this account, in ISO 8601 format (YYYY-MM-DD). example: '2023-01-01' type: string format: date salesTaxCodeId: description: >- The default sales-tax code for transactions with this account, determining whether the transactions are taxable or non-taxable. This can be overridden at the transaction or transaction-line level. 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. example: 80000001-1234567890 type: string maxLength: 36 taxLineId: type: number description: >- The identifier of the tax line associated with this account. You can see a list of all available values for this field by calling the endpoint for account tax lines. example: 123 currencyId: description: >- The account's currency. For built-in currencies, the name and code are standard ISO 4217 international values. For user-defined currencies, all values are editable. example: 80000001-1234567890 type: string maxLength: 36 required: - name - accountType additionalProperties: false responses: '200': description: Returns the newly created account. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_account' x-codeSamples: - lang: JavaScript source: |- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const account = await conductor.qbd.accounts.create({ accountType: 'bank', name: 'Accounts-Payable', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(account.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) account = conductor.qbd.accounts.create( account_type="bank", name="Accounts-Payable", conductor_end_user_id="end_usr_1234567abcdefg", ) print(account.id) /quickbooks-desktop/accounts/{id}: get: summary: Retrieve an account description: >- Retrieves an account by ID. **IMPORTANT:** If you need to fetch multiple specific accounts 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. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the account to retrieve. example: 80000001-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the account to retrieve. responses: '200': description: Returns the specified account. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_account' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const account = await conductor.qbd.accounts.retrieve('80000001-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(account.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) account = conductor.qbd.accounts.retrieve( id="80000001-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(account.id) post: summary: Update an account description: >- Updates an existing financial account. You can rename the account, adjust numbering, or change supported attributes, but QuickBooks won’t let you convert it to a non-posting type via the API. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the account to update. example: 80000001-1234567890 required: true description: The QuickBooks-assigned unique identifier of the account to update. requestBody: required: true content: application/json: schema: type: object properties: revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of the account 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. example: '1721172183' name: description: >- The case-insensitive name of this account. Not guaranteed to be unique because it does not include the names of its hierarchical parent objects like `fullName` does. For example, two accounts could both have the `name` "Accounts-Payable", but they could have unique `fullName` values, such as "Corporate:Accounts-Payable" and "Finance:Accounts-Payable". Maximum length: 31 characters. example: Accounts-Payable type: string maxLength: 31 isActive: description: >- Indicates whether this account is active. Inactive objects are typically hidden from views and reports in QuickBooks. Defaults to `true`. example: true type: boolean parentId: description: >- The parent account one level above this one in the hierarchy. For example, if this account has a `fullName` of "Corporate:Accounts-Payable", its parent has a `fullName` of "Corporate". If this account is at the top level, this field will be `null`. example: 80000001-1234567890 type: string maxLength: 36 accountType: description: >- The classification of this account, indicating its purpose within the chart of accounts. **NOTE**: You cannot create an account of type `non_posting` through the API because QuickBooks creates these accounts behind the scenes. example: bank type: string enum: - accounts_payable - accounts_receivable - bank - cost_of_goods_sold - credit_card - equity - expense - fixed_asset - income - long_term_liability - non_posting - other_asset - other_current_asset - other_current_liability - other_expense - other_income accountNumber: description: >- The account's account number, which appears in the QuickBooks chart of accounts, reports, and graphs. Note that if the "Use Account Numbers" preference is turned off in QuickBooks, the account number may not be visible in the user interface, but it can still be set and retrieved through the API. example: '1010' type: string bankAccountNumber: description: >- The bank account number or identifying note for this account. Access to this field may be restricted based on permissions. example: '123456789' type: string description: description: A description of this account. example: >- Accounts-payable are the amounts owed to suppliers for goods and services purchased on credit. type: string openingBalance: description: >- The amount of money in, or the value of, this account as of `openingBalanceDate`. On a bank statement, this would be the amount of money in the account at the beginning of the statement period. example: '1000.00' type: string openingBalanceDate: description: >- The date of the opening balance of this account, in ISO 8601 format (YYYY-MM-DD). example: '2023-01-01' type: string format: date salesTaxCodeId: description: >- The default sales-tax code for transactions with this account, determining whether the transactions are taxable or non-taxable. This can be overridden at the transaction or transaction-line level. 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. example: 80000001-1234567890 type: string maxLength: 36 taxLineId: type: number description: >- The identifier of the tax line associated with this account. You can see a list of all available values for this field by calling the endpoint for account tax lines. example: 123 currencyId: description: >- The account's currency. For built-in currencies, the name and code are standard ISO 4217 international values. For user-defined currencies, all values are editable. example: 80000001-1234567890 type: string maxLength: 36 required: - revisionNumber additionalProperties: false responses: '200': description: Returns the updated account. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_account' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const account = await conductor.qbd.accounts.update('80000001-1234567890', { revisionNumber: '1721172183', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(account.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) account = conductor.qbd.accounts.update( id="80000001-1234567890", revision_number="1721172183", conductor_end_user_id="end_usr_1234567abcdefg", ) print(account.id) /quickbooks-desktop/bill-check-payments: get: summary: List all bill check payments description: >- Returns a list of bill check payments. Use the `cursor` parameter to paginate through the results. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: query name: ids schema: description: >- Filter for specific bill check payments 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 type: array items: type: string description: >- Filter for specific bill check payments 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. - in: query name: refNumbers schema: description: >- Filter for specific bill check payments 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 CHECK PAYMENT-1234 type: array items: type: string description: >- Filter for specific bill check payments 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. - in: query name: limit schema: default: 150 description: >- 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. example: 150 type: integer minimum: 1 maximum: 150 description: >- 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. - in: query name: cursor schema: description: >- 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 type: string description: >- 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. - in: query name: updatedAfter schema: description: >- Filter for bill check payments 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. example: 2025-01-01T12:34:56.000Z type: string description: >- Filter for bill check payments 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. - in: query name: updatedBefore schema: description: >- Filter for bill check payments 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. example: 2025-02-01T12:34:56.000Z type: string description: >- Filter for bill check payments 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. - in: query name: transactionDateFrom schema: description: >- Filter for bill check payments 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-01` → `2025-01-01T00:00:00`). example: '2025-01-01' type: string format: date description: >- Filter for bill check payments 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-01` → `2025-01-01T00:00:00`). - in: query name: transactionDateTo schema: description: >- Filter for bill check payments 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-01` → `2025-01-01T23:59:59`). example: '2025-02-01' type: string format: date description: >- Filter for bill check payments 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-01` → `2025-01-01T23:59:59`). - in: query name: vendorIds schema: description: >- Filter for bill check payments sent to these vendors. These are the vendors who sent the bills paid by these checks. example: - 80000001-1234567890 type: array items: type: string description: >- Filter for bill check payments sent to these vendors. These are the vendors who sent the bills paid by these checks. - in: query name: accountIds schema: description: Filter for bill check payments associated with these accounts. example: - 80000001-1234567890 type: array items: type: string description: Filter for bill check payments associated with these accounts. - in: query name: refNumberContains schema: description: >- Filter for bill check payments whose `refNumber` contains this substring. (For checks, this field is the check number.) **NOTE**: If you use this parameter, you cannot also use `refNumberStartsWith` or `refNumberEndsWith`. example: CHECK-1234 type: string description: >- Filter for bill check payments whose `refNumber` contains this substring. (For checks, this field is the check number.) **NOTE**: If you use this parameter, you cannot also use `refNumberStartsWith` or `refNumberEndsWith`. - in: query name: refNumberStartsWith schema: description: >- Filter for bill check payments whose `refNumber` starts with this substring. (For checks, this field is the check number.) **NOTE**: If you use this parameter, you cannot also use `refNumberContains` or `refNumberEndsWith`. example: CHECK type: string description: >- Filter for bill check payments whose `refNumber` starts with this substring. (For checks, this field is the check number.) **NOTE**: If you use this parameter, you cannot also use `refNumberContains` or `refNumberEndsWith`. - in: query name: refNumberEndsWith schema: description: >- Filter for bill check payments whose `refNumber` ends with this substring. (For checks, this field is the check number.) **NOTE**: If you use this parameter, you cannot also use `refNumberContains` or `refNumberStartsWith`. example: '1234' type: string description: >- Filter for bill check payments whose `refNumber` ends with this substring. (For checks, this field is the check number.) **NOTE**: If you use this parameter, you cannot also use `refNumberContains` or `refNumberStartsWith`. - in: query name: refNumberFrom schema: description: >- Filter for bill check payments whose `refNumber` is greater than or equal to this value. (For checks, this field is the check number.) 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: CHECK-0001 type: string description: >- Filter for bill check payments whose `refNumber` is greater than or equal to this value. (For checks, this field is the check number.) 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. - in: query name: refNumberTo schema: description: >- Filter for bill check payments whose `refNumber` is less than or equal to this value. (For checks, this field is the check number.) 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: CHECK-9999 type: string description: >- Filter for bill check payments whose `refNumber` is less than or equal to this value. (For checks, this field is the check number.) 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. - in: query name: currencyIds schema: description: Filter for bill check payments in these currencies. example: - 80000001-1234567890 type: array items: type: string description: Filter for bill check payments in these currencies. - in: query name: includeLineItems schema: description: Whether to include line items in the response. Defaults to `true`. example: true type: boolean default: true description: Whether to include line items in the response. Defaults to `true`. responses: '200': description: Returns a list of bill check payments. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: objectType: description: The type of object. This value is always `"list"`. example: list type: string const: list url: type: string description: The endpoint URL where this list can be accessed. example: /v1/quickbooks-desktop/bill-check-payments data: type: array items: $ref: '#/components/schemas/qbd_bill_check_payment' description: The array of bill check payments. nextCursor: anyOf: - type: string - type: 'null' description: >- The `nextCursor` is a pagination token returned in the response when you use the `limit` parameter in your request. To retrieve subsequent pages of results, include this token as the value of the `cursor` request parameter in your following API calls. **NOTE**: The `nextCursor` value remains constant throughout the pagination process for a specific list instance; continue to use the same `nextCursor` token in each request to fetch additional pages. example: 12345678-abcd-abcd-example-1234567890ab remainingCount: anyOf: - type: number - type: 'null' description: The number of objects remaining to be fetched. example: 10 hasMore: type: boolean description: Indicates whether there are more objects to be fetched. required: - objectType - url - data - nextCursor - remainingCount - hasMore additionalProperties: false x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); // Automatically fetches more pages as needed. for await (const billCheckPayment of conductor.qbd.billCheckPayments.list({ conductorEndUserId: 'end_usr_1234567abcdefg', })) { console.log(billCheckPayment.id); } - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) page = conductor.qbd.bill_check_payments.list( conductor_end_user_id="end_usr_1234567abcdefg", ) page = page.data[0] print(page.id) post: summary: Create a bill check payment description: >- Records a check payment against one vendor’s open bills. Each bill allocation must include a payment amount, discount, or vendor credit, and the accounts payable account has to match the one used on the bills you’re closing. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. requestBody: required: true content: application/json: schema: type: object properties: vendorId: description: >- The vendor who sent the bill(s) that this bill check payment is paying and who will receive this payment. **IMPORTANT**: This vendor must match the `vendor` on the bill(s) specified in `applyToTransactions`; otherwise, QuickBooks will say the `transactionId` in `applyToTransactions` "does not exist". example: 80000001-1234567890 type: string maxLength: 36 payablesAccountId: description: >- The Accounts-Payable (A/P) account to which this bill check payment is assigned, used for accounts-payable tracking. If omitted, QuickBooks Desktop uses the default A/P account configured in the company file. **IMPORTANT**: If this bill check payment is linked to other transactions, this A/P account must match the `payablesAccount` used in those other transactions. example: 80000001-1234567890 type: string maxLength: 36 transactionDate: type: string format: date description: >- The date of this bill check payment, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-01' bankAccountId: description: >- The bank account from which the funds are being drawn for this bill check payment; e.g., Checking or Savings. This bill check payment will decrease the balance of this account. example: 80000001-1234567890 type: string maxLength: 36 isQueuedForPrint: type: boolean description: >- Indicates whether this bill check payment is included in the queue of documents for QuickBooks to print. example: true refNumber: description: >- The case-sensitive user-defined reference number for this bill check payment, 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. When left blank in this create request, this field will be left blank in QuickBooks (i.e., it does *not* auto-increment). **IMPORTANT**: For checks, this field is the check number. Maximum length: 11 characters. example: CHECK-1234 type: string maxLength: 11 memo: description: A memo or note for this bill check payment. example: Payment for office supplies - Invoice INV-1234 type: string exchangeRate: description: >- The market exchange rate between this bill check payment'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: 1.2345 type: number externalId: type: string format: uuid description: >- 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. **IMPORTANT**: This field must be formatted as a valid GUID; otherwise, QuickBooks will return an error. example: 12345678-abcd-1234-abcd-1234567890ab applyToTransactions: minItems: 1 type: array items: type: object properties: transactionId: type: string maxLength: 36 description: >- The ID of the target transaction to which this payment is applied. example: 123ABC-1234567890 paymentAmount: description: >- The monetary amount to apply to the target transaction, represented as a decimal string. Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45"). example: '25.00' type: string applyCredits: description: >- Credits to apply to this target transaction, reducing its balance. This creates a link between this target transaction and the specified credit transactions. **IMPORTANT**: By default, QuickBooks will not return any information about the linked transactions in this endpoint's response even when this request is successful. To see the transactions linked via this field, refetch the target transaction and check the `linkedTransactions` response field. If fetching a list of target transactions, you must also specify the parameter `includeLinkedTransactions=true` to see the `linkedTransactions` response field. minItems: 1 type: array items: type: object properties: creditTransactionId: type: string maxLength: 36 description: >- The unique identifier of the credit transaction to apply to this transaction, such as a credit memo, vendor credit, or journal-entry credit. example: ABCDEF-1234567890 appliedAmount: type: string description: >- The amount of the selected credit transaction to apply to this transaction, represented as a decimal string. Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45"). example: '100.00' overrideCreditApplication: description: Indicates whether to override the credit. example: false default: false type: boolean required: - creditTransactionId - appliedAmount additionalProperties: false discountAmount: description: >- The monetary amount by which to reduce this target transaction's balance, represented as a decimal string. Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45"). example: '50.00' type: string discountAccountId: description: >- The financial account used to track this target transaction's discount. example: 80000001-1234567890 type: string maxLength: 36 discountClassId: description: >- The class used to track this target transaction's discount. example: 80000001-1234567890 type: string maxLength: 36 required: - transactionId additionalProperties: false description: >- The bills to be paid by this bill check payment. This will create a link between this bill check payment and the specified bills. **IMPORTANT**: In each `applyToTransactions` object, you must specify either `paymentAmount`, `applyCredits`, `discountAmount`, or any combination of these; if none of these are specified, you will receive an error for an empty transaction. **IMPORTANT**: The target bill must have `isPaid=false`, otherwise, QuickBooks will report this object as "cannot be found". required: - vendorId - transactionDate - bankAccountId - applyToTransactions additionalProperties: false responses: '200': description: Returns the newly created bill check payment. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_bill_check_payment' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const billCheckPayment = await conductor.qbd.billCheckPayments.create({ applyToTransactions: [{ transactionId: '123ABC-1234567890' }], bankAccountId: '80000001-1234567890', transactionDate: '2024-10-01', vendorId: '80000001-1234567890', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(billCheckPayment.id); - lang: Python source: |- import os from datetime import date from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) bill_check_payment = conductor.qbd.bill_check_payments.create( apply_to_transactions=[{ "transaction_id": "123ABC-1234567890" }], bank_account_id="80000001-1234567890", transaction_date=date.fromisoformat("2024-10-01"), vendor_id="80000001-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(bill_check_payment.id) /quickbooks-desktop/bill-check-payments/{id}: get: summary: Retrieve a bill check payment description: >- Retrieves a bill check payment by ID. **IMPORTANT:** If you need to fetch multiple specific bill check payments 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. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the bill check payment to retrieve. example: 123ABC-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the bill check payment to retrieve. responses: '200': description: Returns the specified bill check payment. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_bill_check_payment' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const billCheckPayment = await conductor.qbd.billCheckPayments.retrieve('123ABC-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(billCheckPayment.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) bill_check_payment = conductor.qbd.bill_check_payments.retrieve( id="123ABC-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(bill_check_payment.id) post: summary: Update a bill check payment description: >- Updates a bill check payment so you can reallocate how amounts, discounts, or credits are applied to the vendor’s bills. When you update a payment, QuickBooks clears the prior allocations but keeps any existing vendor credits unchanged, so submit the full list of bill applications in this request. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the bill check payment to update. example: 123ABC-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the bill check payment to update. requestBody: required: true content: application/json: schema: type: object properties: revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of the bill check payment 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. example: '1721172183' transactionDate: description: >- The date of this bill check payment, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-01' type: string format: date bankAccountId: description: >- The bank account from which the funds are being drawn for this bill check payment; e.g., Checking or Savings. This bill check payment will decrease the balance of this account. example: 80000001-1234567890 type: string maxLength: 36 amount: description: >- The monetary amount of this bill check payment, represented as a decimal string. Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45"). example: '1000.00' type: string exchangeRate: description: >- The market exchange rate between this bill check payment'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: 1.2345 type: number isQueuedForPrint: type: boolean description: >- Indicates whether this bill check payment is included in the queue of documents for QuickBooks to print. example: true refNumber: description: >- The case-sensitive user-defined reference number for this bill check payment, 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. **IMPORTANT**: For checks, this field is the check number. Maximum length: 11 characters. example: CHECK-1234 type: string maxLength: 11 memo: description: A memo or note for this bill check payment. example: Payment for office supplies - Invoice INV-1234 type: string applyToTransactions: description: >- The bills to be paid by this bill check payment. This will create a link between this bill check payment and the specified bills. **IMPORTANT**: In each `applyToTransactions` object, you must specify either `paymentAmount`, `applyCredits`, `discountAmount`, or any combination of these; if none of these are specified, you will receive an error for an empty transaction. **IMPORTANT**: The target bill must have `isPaid=false`, otherwise, QuickBooks will report this object as "cannot be found". minItems: 1 type: array items: type: object properties: transactionId: type: string maxLength: 36 description: >- The ID of the target transaction to which this payment is applied. example: 123ABC-1234567890 paymentAmount: description: >- The monetary amount to apply to the target transaction, represented as a decimal string. Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45"). example: '25.00' type: string applyCredits: description: >- Credits to apply to this target transaction, reducing its balance. This creates a link between this target transaction and the specified credit transactions. **IMPORTANT**: By default, QuickBooks will not return any information about the linked transactions in this endpoint's response even when this request is successful. To see the transactions linked via this field, refetch the target transaction and check the `linkedTransactions` response field. If fetching a list of target transactions, you must also specify the parameter `includeLinkedTransactions=true` to see the `linkedTransactions` response field. minItems: 1 type: array items: type: object properties: creditTransactionId: type: string maxLength: 36 description: >- The unique identifier of the credit transaction to apply to this transaction, such as a credit memo, vendor credit, or journal-entry credit. example: ABCDEF-1234567890 appliedAmount: type: string description: >- The amount of the selected credit transaction to apply to this transaction, represented as a decimal string. Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45"). example: '100.00' overrideCreditApplication: description: Indicates whether to override the credit. example: false default: false type: boolean required: - creditTransactionId - appliedAmount additionalProperties: false discountAmount: description: >- The monetary amount by which to reduce this target transaction's balance, represented as a decimal string. Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45"). example: '50.00' type: string discountAccountId: description: >- The financial account used to track this target transaction's discount. example: 80000001-1234567890 type: string maxLength: 36 discountClassId: description: >- The class used to track this target transaction's discount. example: 80000001-1234567890 type: string maxLength: 36 required: - transactionId additionalProperties: false required: - revisionNumber additionalProperties: false responses: '200': description: Returns the updated bill check payment. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_bill_check_payment' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const billCheckPayment = await conductor.qbd.billCheckPayments.update('123ABC-1234567890', { revisionNumber: '1721172183', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(billCheckPayment.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) bill_check_payment = conductor.qbd.bill_check_payments.update( id="123ABC-1234567890", revision_number="1721172183", conductor_end_user_id="end_usr_1234567abcdefg", ) print(bill_check_payment.id) delete: summary: Delete a bill check payment description: >- Permanently deletes a bill check payment. The deletion will fail if the bill check payment is currently in use or has any linked transactions that are in use. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the bill check payment to delete. example: 123ABC-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the bill check payment to delete. responses: '200': description: >- Returns a confirmation of the deletion with the ID of the deleted bill check payment. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: id: type: string description: >- The QuickBooks-assigned unique identifier of the deleted bill check payment. example: 123ABC-1234567890 objectType: description: >- The type of object. This value is always `"qbd_bill_check_payment"`. example: qbd_bill_check_payment type: string const: qbd_bill_check_payment refNumber: anyOf: - type: string - type: 'null' description: >- The case-sensitive user-defined reference number of the deleted bill check payment. example: CHECK-1234 deleted: type: boolean description: Indicates whether the bill check payment was deleted. example: true required: - id - objectType - refNumber - deleted additionalProperties: false x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const billCheckPayment = await conductor.qbd.billCheckPayments.delete('123ABC-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(billCheckPayment.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) bill_check_payment = conductor.qbd.bill_check_payments.delete( id="123ABC-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(bill_check_payment.id) /quickbooks-desktop/bill-check-payments/{id}/void: post: summary: Void a bill check payment description: >- Voids a bill check payment by setting its amount to zero while keeping a record of it in QuickBooks. The void will fail if the bill check payment is currently in use or has any linked transactions that are in use. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the bill check payment to void. example: 123ABC-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the bill check payment to void. responses: '200': description: >- Returns a confirmation of the void with the ID of the voided bill check payment. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: id: type: string description: >- The QuickBooks-assigned unique identifier of the voided bill check payment. example: 123ABC-1234567890 objectType: description: >- The type of object. This value is always `"qbd_bill_check_payment"`. example: qbd_bill_check_payment type: string const: qbd_bill_check_payment createdAt: anyOf: - type: string - type: 'null' description: >- The date and time when this bill check payment 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. example: 2025-01-01T12:34:56.000Z updatedAt: anyOf: - type: string - type: 'null' description: >- The date and time when this bill check payment 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. example: 2025-02-01T12:34:56.000Z refNumber: anyOf: - type: string - type: 'null' description: >- The case-sensitive user-defined reference number of the voided bill check payment. example: CHECK-1234 voided: type: boolean description: Indicates whether the bill check payment was voided. example: true required: - id - objectType - createdAt - updatedAt - refNumber - voided additionalProperties: false x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const response = await conductor.qbd.billCheckPayments.void('123ABC-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(response.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) response = conductor.qbd.bill_check_payments.void( id="123ABC-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(response.id) /quickbooks-desktop/bill-credit-card-payments: get: summary: List all bill credit card payments description: >- Returns a list of bill credit card payments. Use the `cursor` parameter to paginate through the results. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: query name: ids schema: description: >- Filter for specific bill credit card payments 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 type: array items: type: string description: >- Filter for specific bill credit card payments 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. - in: query name: refNumbers schema: description: >- Filter for specific bill credit card payments 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 CREDIT CARD PAYMENT-1234 type: array items: type: string description: >- Filter for specific bill credit card payments 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. - in: query name: limit schema: default: 150 description: >- 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. example: 150 type: integer minimum: 1 maximum: 150 description: >- 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. - in: query name: cursor schema: description: >- 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 type: string description: >- 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. - in: query name: updatedAfter schema: description: >- Filter for bill credit card payments 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. example: 2025-01-01T12:34:56.000Z type: string description: >- Filter for bill credit card payments 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. - in: query name: updatedBefore schema: description: >- Filter for bill credit card payments 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. example: 2025-02-01T12:34:56.000Z type: string description: >- Filter for bill credit card payments 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. - in: query name: transactionDateFrom schema: description: >- Filter for bill credit card payments 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-01` → `2025-01-01T00:00:00`). example: '2025-01-01' type: string format: date description: >- Filter for bill credit card payments 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-01` → `2025-01-01T00:00:00`). - in: query name: transactionDateTo schema: description: >- Filter for bill credit card payments 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-01` → `2025-01-01T23:59:59`). example: '2025-02-01' type: string format: date description: >- Filter for bill credit card payments 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-01` → `2025-01-01T23:59:59`). - in: query name: vendorIds schema: description: >- Filter for bill credit card payments sent to these vendors. These are the vendors who sent the bills paid by these credit card payments. example: - 80000001-1234567890 type: array items: type: string description: >- Filter for bill credit card payments sent to these vendors. These are the vendors who sent the bills paid by these credit card payments. - in: query name: accountIds schema: description: >- Filter for bill credit card payments associated with these accounts. example: - 80000001-1234567890 type: array items: type: string description: Filter for bill credit card payments associated with these accounts. - in: query name: refNumberContains schema: description: >- Filter for bill credit card payments whose `refNumber` contains this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberStartsWith` or `refNumberEndsWith`. example: CARD-1234 type: string description: >- Filter for bill credit card payments whose `refNumber` contains this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberStartsWith` or `refNumberEndsWith`. - in: query name: refNumberStartsWith schema: description: >- Filter for bill credit card payments whose `refNumber` starts with this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberContains` or `refNumberEndsWith`. example: CARD type: string description: >- Filter for bill credit card payments whose `refNumber` starts with this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberContains` or `refNumberEndsWith`. - in: query name: refNumberEndsWith schema: description: >- Filter for bill credit card payments whose `refNumber` ends with this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberContains` or `refNumberStartsWith`. example: '1234' type: string description: >- Filter for bill credit card payments whose `refNumber` ends with this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberContains` or `refNumberStartsWith`. - in: query name: refNumberFrom schema: description: >- Filter for bill credit card payments 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: CARD-0001 type: string description: >- Filter for bill credit card payments 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. - in: query name: refNumberTo schema: description: >- Filter for bill credit card payments 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: CARD-9999 type: string description: >- Filter for bill credit card payments 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. - in: query name: currencyIds schema: description: Filter for bill credit card payments in these currencies. example: - 80000001-1234567890 type: array items: type: string description: Filter for bill credit card payments in these currencies. - in: query name: includeLineItems schema: description: Whether to include line items in the response. Defaults to `true`. example: true type: boolean default: true description: Whether to include line items in the response. Defaults to `true`. responses: '200': description: Returns a list of bill credit card payments. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: objectType: description: The type of object. This value is always `"list"`. example: list type: string const: list url: type: string description: The endpoint URL where this list can be accessed. example: /v1/quickbooks-desktop/bill-credit-card-payments data: type: array items: $ref: '#/components/schemas/qbd_bill_credit_card_payment' description: The array of bill credit card payments. nextCursor: anyOf: - type: string - type: 'null' description: >- The `nextCursor` is a pagination token returned in the response when you use the `limit` parameter in your request. To retrieve subsequent pages of results, include this token as the value of the `cursor` request parameter in your following API calls. **NOTE**: The `nextCursor` value remains constant throughout the pagination process for a specific list instance; continue to use the same `nextCursor` token in each request to fetch additional pages. example: 12345678-abcd-abcd-example-1234567890ab remainingCount: anyOf: - type: number - type: 'null' description: The number of objects remaining to be fetched. example: 10 hasMore: type: boolean description: Indicates whether there are more objects to be fetched. required: - objectType - url - data - nextCursor - remainingCount - hasMore additionalProperties: false x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); // Automatically fetches more pages as needed. for await (const billCreditCardPayment of conductor.qbd.billCreditCardPayments.list({ conductorEndUserId: 'end_usr_1234567abcdefg', })) { console.log(billCreditCardPayment.id); } - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) page = conductor.qbd.bill_credit_card_payments.list( conductor_end_user_id="end_usr_1234567abcdefg", ) page = page.data[0] print(page.id) post: summary: Create a bill credit card payment description: >- Charges one vendor’s bills to a credit card account. Each bill allocation must supply a payment amount, discount, or credit, and you have to use the same accounts payable account that’s on the bills being closed. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. requestBody: required: true content: application/json: schema: type: object properties: vendorId: description: >- The vendor who sent the bill(s) that this bill credit card payment is paying and who will receive this payment. **IMPORTANT**: This vendor must match the `vendor` on the bill(s) specified in `applyToTransactions`; otherwise, QuickBooks will say the `transactionId` in `applyToTransactions` "does not exist". example: 80000001-1234567890 type: string maxLength: 36 payablesAccountId: description: >- The Accounts-Payable (A/P) account to which this bill credit card payment is assigned, used for accounts-payable tracking. If omitted, QuickBooks Desktop uses the default A/P account configured in the company file. **IMPORTANT**: If this bill credit card payment is linked to other transactions, this A/P account must match the `payablesAccount` used in those other transactions. example: 80000001-1234567890 type: string maxLength: 36 transactionDate: type: string format: date description: >- The date of this bill credit card payment, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-01' creditCardAccountId: description: >- The credit card account to which this bill credit card payment is being charged. This bill credit card payment will decrease the balance of this account. example: 80000001-1234567890 type: string maxLength: 36 refNumber: description: >- The case-sensitive user-defined reference number for this bill credit card payment, 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. When left blank in this create request, this field will be left blank in QuickBooks (i.e., it does *not* auto-increment). Maximum length: 11 characters. example: CARD-1234 type: string maxLength: 11 memo: description: A memo or note for this bill credit card payment. example: Payment for office supplies - Invoice INV-1234 type: string exchangeRate: description: >- The market exchange rate between this bill credit card payment'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: 1.2345 type: number externalId: type: string format: uuid description: >- 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. **IMPORTANT**: This field must be formatted as a valid GUID; otherwise, QuickBooks will return an error. example: 12345678-abcd-1234-abcd-1234567890ab applyToTransactions: minItems: 1 type: array items: type: object properties: transactionId: type: string maxLength: 36 description: >- The ID of the target transaction to which this payment is applied. example: 123ABC-1234567890 paymentAmount: description: >- The monetary amount to apply to the target transaction, represented as a decimal string. Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45"). example: '25.00' type: string applyCredits: description: >- Credits to apply to this target transaction, reducing its balance. This creates a link between this target transaction and the specified credit transactions. **IMPORTANT**: By default, QuickBooks will not return any information about the linked transactions in this endpoint's response even when this request is successful. To see the transactions linked via this field, refetch the target transaction and check the `linkedTransactions` response field. If fetching a list of target transactions, you must also specify the parameter `includeLinkedTransactions=true` to see the `linkedTransactions` response field. minItems: 1 type: array items: type: object properties: creditTransactionId: type: string maxLength: 36 description: >- The unique identifier of the credit transaction to apply to this transaction, such as a credit memo, vendor credit, or journal-entry credit. example: ABCDEF-1234567890 appliedAmount: type: string description: >- The amount of the selected credit transaction to apply to this transaction, represented as a decimal string. Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45"). example: '100.00' overrideCreditApplication: description: Indicates whether to override the credit. example: false default: false type: boolean required: - creditTransactionId - appliedAmount additionalProperties: false discountAmount: description: >- The monetary amount by which to reduce this target transaction's balance, represented as a decimal string. Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45"). example: '50.00' type: string discountAccountId: description: >- The financial account used to track this target transaction's discount. example: 80000001-1234567890 type: string maxLength: 36 discountClassId: description: >- The class used to track this target transaction's discount. example: 80000001-1234567890 type: string maxLength: 36 required: - transactionId additionalProperties: false description: >- The bills to be paid by this bill credit card payment. This will create a link between this bill credit card payment and the specified bills. **IMPORTANT**: In each `applyToTransactions` object, you must specify either `paymentAmount`, `applyCredits`, `discountAmount`, or any combination of these; if none of these are specified, you will receive an error for an empty transaction. **IMPORTANT**: The target bill must have `isPaid=false`, otherwise, QuickBooks will report this object as "cannot be found". required: - vendorId - transactionDate - creditCardAccountId - applyToTransactions additionalProperties: false responses: '200': description: Returns the newly created bill credit card payment. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_bill_credit_card_payment' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const billCreditCardPayment = await conductor.qbd.billCreditCardPayments.create({ applyToTransactions: [{ transactionId: '123ABC-1234567890' }], creditCardAccountId: '80000001-1234567890', transactionDate: '2024-10-01', vendorId: '80000001-1234567890', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(billCreditCardPayment.id); - lang: Python source: >- import os from datetime import date from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) bill_credit_card_payment = conductor.qbd.bill_credit_card_payments.create( apply_to_transactions=[{ "transaction_id": "123ABC-1234567890" }], credit_card_account_id="80000001-1234567890", transaction_date=date.fromisoformat("2024-10-01"), vendor_id="80000001-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(bill_credit_card_payment.id) /quickbooks-desktop/bill-credit-card-payments/{id}: get: summary: Retrieve a bill credit card payment description: >- Retrieves a bill credit card payment by ID. **IMPORTANT:** If you need to fetch multiple specific bill credit card payments 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. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the bill credit card payment to retrieve. example: 123ABC-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the bill credit card payment to retrieve. responses: '200': description: Returns the specified bill credit card payment. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_bill_credit_card_payment' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const billCreditCardPayment = await conductor.qbd.billCreditCardPayments.retrieve( '123ABC-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg' }, ); console.log(billCreditCardPayment.id); - lang: Python source: >- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) bill_credit_card_payment = conductor.qbd.bill_credit_card_payments.retrieve( id="123ABC-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(bill_credit_card_payment.id) delete: summary: Delete a bill credit card payment description: >- Permanently deletes a bill credit card payment. The deletion will fail if the bill credit card payment is currently in use or has any linked transactions that are in use. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the bill credit card payment to delete. example: 123ABC-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the bill credit card payment to delete. responses: '200': description: >- Returns a confirmation of the deletion with the ID of the deleted bill credit card payment. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: id: type: string description: >- The QuickBooks-assigned unique identifier of the deleted bill credit card payment. example: 123ABC-1234567890 objectType: description: >- The type of object. This value is always `"qbd_bill_credit_card_payment"`. example: qbd_bill_credit_card_payment type: string const: qbd_bill_credit_card_payment refNumber: anyOf: - type: string - type: 'null' description: >- The case-sensitive user-defined reference number of the deleted bill credit card payment. example: CARD-1234 deleted: type: boolean description: >- Indicates whether the bill credit card payment was deleted. example: true required: - id - objectType - refNumber - deleted additionalProperties: false x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const billCreditCardPayment = await conductor.qbd.billCreditCardPayments.delete( '123ABC-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg' }, ); console.log(billCreditCardPayment.id); - lang: Python source: >- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) bill_credit_card_payment = conductor.qbd.bill_credit_card_payments.delete( id="123ABC-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(bill_credit_card_payment.id) /quickbooks-desktop/bill-credit-card-payments/{id}/void: post: summary: Void a bill credit card payment description: >- Voids a bill credit card payment by setting its amount to zero while keeping a record of it in QuickBooks. The void will fail if the bill credit card payment is currently in use or has any linked transactions that are in use. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the bill credit card payment to void. example: 123ABC-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the bill credit card payment to void. responses: '200': description: >- Returns a confirmation of the void with the ID of the voided bill credit card payment. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: id: type: string description: >- The QuickBooks-assigned unique identifier of the voided bill credit card payment. example: 123ABC-1234567890 objectType: description: >- The type of object. This value is always `"qbd_bill_credit_card_payment"`. example: qbd_bill_credit_card_payment type: string const: qbd_bill_credit_card_payment createdAt: anyOf: - type: string - type: 'null' description: >- The date and time when this bill credit card payment 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. example: 2025-01-01T12:34:56.000Z updatedAt: anyOf: - type: string - type: 'null' description: >- The date and time when this bill credit card payment 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. example: 2025-02-01T12:34:56.000Z refNumber: anyOf: - type: string - type: 'null' description: >- The case-sensitive user-defined reference number of the voided bill credit card payment. example: CARD-1234 voided: type: boolean description: Indicates whether the bill credit card payment was voided. example: true required: - id - objectType - createdAt - updatedAt - refNumber - voided additionalProperties: false x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const response = await conductor.qbd.billCreditCardPayments.void('123ABC-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(response.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) response = conductor.qbd.bill_credit_card_payments.void( id="123ABC-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(response.id) /quickbooks-desktop/bills: get: summary: List all bills description: >- Returns a list of bills. Use the `cursor` parameter to paginate through the results. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: query name: ids schema: description: >- 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 type: array items: type: string description: >- 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. - in: query name: refNumbers schema: description: >- 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 type: array items: type: string description: >- 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. - in: query name: limit schema: default: 150 description: >- 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. example: 150 type: integer minimum: 1 maximum: 150 description: >- 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. - in: query name: cursor schema: description: >- 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 type: string description: >- 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. - in: query name: updatedAfter schema: description: >- 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-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. example: 2025-01-01T12:34:56.000Z type: string description: >- 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-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. - in: query name: updatedBefore schema: description: >- 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-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. example: 2025-02-01T12:34:56.000Z type: string description: >- 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-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. - in: query name: transactionDateFrom schema: description: >- 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-01` → `2025-01-01T00:00:00`). example: '2025-01-01' type: string format: date description: >- 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-01` → `2025-01-01T00:00:00`). - in: query name: transactionDateTo schema: description: >- 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-01` → `2025-01-01T23:59:59`). example: '2025-02-01' type: string format: date description: >- 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-01` → `2025-01-01T23:59:59`). - in: query name: vendorIds schema: description: Filter for bills received from these vendors. example: - 80000001-1234567890 type: array items: type: string description: Filter for bills received from these vendors. - in: query name: accountIds schema: description: Filter for bills associated with these accounts. example: - 80000001-1234567890 type: array items: type: string description: Filter for bills associated with these accounts. - in: query name: refNumberContains schema: description: >- Filter for bills whose `refNumber` contains this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberStartsWith` or `refNumberEndsWith`. example: BILL-1234 type: string description: >- Filter for bills whose `refNumber` contains this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberStartsWith` or `refNumberEndsWith`. - in: query name: refNumberStartsWith schema: description: >- Filter for bills whose `refNumber` starts with this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberContains` or `refNumberEndsWith`. example: BILL type: string description: >- Filter for bills whose `refNumber` starts with this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberContains` or `refNumberEndsWith`. - in: query name: refNumberEndsWith schema: description: >- Filter for bills whose `refNumber` ends with this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberContains` or `refNumberStartsWith`. example: '1234' type: string description: >- Filter for bills whose `refNumber` ends with this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberContains` or `refNumberStartsWith`. - in: query name: refNumberFrom schema: description: >- 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 type: string description: >- 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. - in: query name: refNumberTo schema: description: >- 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 type: string description: >- 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. - in: query name: currencyIds schema: description: Filter for bills in these currencies. example: - 80000001-1234567890 type: array items: type: string description: Filter for bills in these currencies. - in: query name: paymentStatus schema: description: Filter for bills that are paid, not paid, or both. example: paid type: string enum: - all - paid - not_paid default: all description: Filter for bills that are paid, not paid, or both. - in: query name: includeLineItems schema: description: Whether to include line items in the response. Defaults to `true`. example: true type: boolean default: true description: Whether to include line items in the response. Defaults to `true`. - in: query name: includeLinkedTransactions schema: description: >- Whether to include linked transactions in the response. Defaults to `false`. For example, a payment linked to the corresponding bill. example: false type: boolean default: false description: >- Whether to include linked transactions in the response. Defaults to `false`. For example, a payment linked to the corresponding bill. responses: '200': description: Returns a list of bills. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: objectType: description: The type of object. This value is always `"list"`. example: list type: string const: list url: type: string description: The endpoint URL where this list can be accessed. example: /v1/quickbooks-desktop/bills data: type: array items: $ref: '#/components/schemas/qbd_bill' description: The array of bills. nextCursor: anyOf: - type: string - type: 'null' description: >- The `nextCursor` is a pagination token returned in the response when you use the `limit` parameter in your request. To retrieve subsequent pages of results, include this token as the value of the `cursor` request parameter in your following API calls. **NOTE**: The `nextCursor` value remains constant throughout the pagination process for a specific list instance; continue to use the same `nextCursor` token in each request to fetch additional pages. example: 12345678-abcd-abcd-example-1234567890ab remainingCount: anyOf: - type: number - type: 'null' description: The number of objects remaining to be fetched. example: 10 hasMore: type: boolean description: Indicates whether there are more objects to be fetched. required: - objectType - url - data - nextCursor - remainingCount - hasMore additionalProperties: false x-codeSamples: - lang: JavaScript source: |- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); // Automatically fetches more pages as needed. for await (const bill of conductor.qbd.bills.list({ conductorEndUserId: 'end_usr_1234567abcdefg', })) { console.log(bill.id); } - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) page = conductor.qbd.bills.list( conductor_end_user_id="end_usr_1234567abcdefg", ) page = page.data[0] print(page.id) post: summary: Create a bill description: >- Creates a vendor bill and posts it to accounts payable. You can also link eligible purchase orders so QuickBooks pulls their lines onto the bill before it's saved. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. requestBody: required: true content: application/json: schema: type: object properties: vendorId: description: >- The vendor who sent this bill for goods or services purchased. example: 80000001-1234567890 type: string maxLength: 36 vendorAddress: description: The address of the vendor who sent this bill. type: object properties: line1: description: >- The first line of the address (e.g., street, PO Box, or company name). Maximum length: 41 characters. example: Conductor Labs Inc. type: string maxLength: 41 line2: description: >- The second line of the address, if needed (e.g., apartment, suite, unit, or building). Maximum length: 41 characters. example: 540 Market St. type: string maxLength: 41 line3: description: |- The third line of the address, if needed. Maximum length: 41 characters. example: Suite 100 type: string maxLength: 41 line4: description: |- The fourth line of the address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 line5: description: |- The fifth line of the address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 city: description: >- The city, district, suburb, town, or village name of the address. Maximum length: 31 characters. example: San Francisco type: string maxLength: 31 state: description: >- The state, county, province, or region name of the address. Maximum length: 21 characters. example: CA type: string maxLength: 21 postalCode: description: |- The postal code or ZIP code of the address. Maximum length: 13 characters. example: '94110' type: string maxLength: 13 country: description: The country name of the address. example: United States type: string note: description: >- A note written at the bottom of the address in the form in which it appears, such as the invoice form. example: Conductor HQ type: string additionalProperties: false payablesAccountId: description: >- The Accounts-Payable (A/P) account to which this bill is assigned, used for accounts-payable tracking. If omitted, QuickBooks Desktop uses the default A/P account configured in the company file. **IMPORTANT**: If this bill is linked to other transactions, this A/P account must match the `payablesAccount` used in those other transactions. example: 80000001-1234567890 type: string maxLength: 36 transactionDate: type: string format: date description: The date of this bill, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-01' dueDate: description: >- The date by which this bill must be paid, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-31' type: string format: date refNumber: description: >- The case-sensitive user-defined reference number for this bill, 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. When left blank in this create request, this field will be left blank in QuickBooks (i.e., it does *not* auto-increment). Maximum length: 20 characters. example: BILL-1234 type: string maxLength: 20 termsId: description: >- The bill's payment terms, defining when payment is due and any applicable discounts. example: 80000001-1234567890 type: string maxLength: 36 memo: description: >- A memo or note for this bill that appears in the Accounts-Payable register and in reports that include this bill. example: Office supplies for September type: string salesTaxCodeId: description: >- The sales-tax code for this bill, 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 bill'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. example: 80000001-1234567890 type: string maxLength: 36 exchangeRate: description: >- The market exchange rate between this bill'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: 1.2345 type: number externalId: type: string format: uuid description: >- 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. **IMPORTANT**: This field must be formatted as a valid GUID; otherwise, QuickBooks will return an error. example: 12345678-abcd-1234-abcd-1234567890ab linkToTransactionIds: description: >- IDs of existing purchase orders that you wish to link to this bill. Note that this links entire transactions, not individual transaction lines. If you want to link individual lines in a transaction, instead use the field `linkToTransactionLine` on this bill's lines, if available. Transactions can only be linked when creating this bill and cannot be unlinked later. You can use both `linkToTransactionIds` (on this bill) and `linkToTransactionLine` (on its transaction lines) as long as they do NOT link to the same transaction (otherwise, QuickBooks will return an error). QuickBooks will also return an error if you attempt to link a transaction that is empty or already closed. **IMPORTANT**: By default, QuickBooks will not return any information about the linked transactions in this endpoint's response even when this request is successful. To see the transactions linked via this field, refetch the bill and check the `linkedTransactions` response field. If fetching a list of bills, you must also specify the parameter `includeLinkedTransactions=true` to see the `linkedTransactions` response field. minItems: 1 type: array items: type: string maxLength: 36 expenseLines: description: >- The bill's expense lines, each representing one line in this expense. minItems: 1 type: array items: type: object properties: accountId: description: >- The expense account being debited (increased) for this expense line. The corresponding account being credited is usually a liability account (e.g., Accounts-Payable) or an asset account (e.g., Cash), depending on the transaction type. example: 80000001-1234567890 type: string maxLength: 36 amount: description: >- The monetary amount of this expense line, represented as a decimal string. Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45"). example: '1000.00' type: string memo: description: A memo or note for this expense line. example: New office chair type: string payeeId: description: >- 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). example: 80000001-1234567890 type: string maxLength: 36 classId: description: >- The expense 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 expense lines unless overridden here, at the transaction line level. example: 80000001-1234567890 type: string maxLength: 36 salesTaxCodeId: description: >- The sales-tax code for this expense 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. example: 80000001-1234567890 type: string maxLength: 36 billingStatus: description: The billing status of this expense line. example: billable type: string enum: - billable - has_been_billed - not_billable default: billable salesRepresentativeId: description: >- The expense line's sales representative. Sales representatives can be employees, vendors, or other names in QuickBooks. example: 80000001-1234567890 type: string maxLength: 36 customFields: description: >- The custom fields for the expense line object, added as user-defined data extensions, not included in the standard QuickBooks object. minItems: 1 type: array items: type: object properties: ownerId: type: string description: >- 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. example: '0' name: type: string description: >- 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. example: Customer Rating value: type: string description: >- The value of this custom field. The maximum length depends on the field's data type. example: Premium required: - ownerId - name - value additionalProperties: false additionalProperties: false itemLines: description: >- The bill's item lines, each representing the purchase of a specific item or service. minItems: 1 type: array items: type: object properties: itemId: description: >- The item associated with this item 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. example: 80000001-1234567890 type: string maxLength: 36 inventorySiteId: description: >- The site location where inventory for the item associated with this item line is stored. example: 80000001-1234567890 type: string maxLength: 36 inventorySiteLocationId: description: >- The specific location (e.g., bin or shelf) within the inventory site where the item associated with this item line is stored. example: 80000001-1234567890 type: string maxLength: 36 serialNumber: description: >- The serial number of the item associated with this item line. This is used for tracking individual units of serialized inventory items. example: SN1234567890 type: string lotNumber: description: >- The lot number of the item associated with this item line. Used for tracking groups of inventory items that are purchased or manufactured together. example: LOT2023-001 type: string expirationDate: description: >- The expiration date for the serial number or lot number of the item associated with this item line, in ISO 8601 format (YYYY-MM-DD). This is particularly relevant for perishable or time-sensitive inventory items. Note that this field is only supported on QuickBooks Desktop 2023 or later. example: '2025-12-31' type: string format: date description: description: A description of this item line. example: High-quality widget with custom engraving type: string quantity: description: >- The quantity of the item associated with this item line. This field cannot be cleared. **NOTE**: Do not use this field if the associated item is a discount item. example: 5 type: number unitOfMeasure: description: >- The unit-of-measure used for the `quantity` in this item line. Must be a valid unit within the item's available units of measure. example: Each type: string cost: description: >- The cost of this item line, represented as a decimal string. If both `quantity` and `amount` are specified but not `cost`, QuickBooks will use them to calculate `cost`. Decimal string format: up to 5 decimal places and up to 10 digits before the decimal point (for example, "123.45"). example: '1000.00' type: string amount: description: >- The monetary amount of this item line, represented as a decimal string. If both `quantity` and `cost` are specified but not `amount`, QuickBooks will use them to calculate `amount`. If `amount`, `cost`, and `quantity` are all unspecified, then QuickBooks will calculate `amount` based on a `quantity` of `1` and the suggested `cost`. This field cannot be cleared. Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45"). example: '1000.00' type: string customerId: description: >- The customer or customer-job associated with this item line. example: 80000001-1234567890 type: string maxLength: 36 classId: description: >- The item 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 item lines unless overridden here, at the transaction line level. example: 80000001-1234567890 type: string maxLength: 36 salesTaxCodeId: description: >- The sales-tax code for this item 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. example: 80000001-1234567890 type: string maxLength: 36 billingStatus: description: The billing status of this item line. example: billable type: string enum: - billable - has_been_billed - not_billable default: billable overrideItemAccountId: description: >- The account to use for this item line, overriding the default account associated with the item. example: 80000001-1234567890 type: string maxLength: 36 linkToTransactionLine: description: >- An existing transaction line that you wish to link to this item line. Note that this only links to a single transaction line item, not an entire transaction. If you want to link an entire transaction and bring in all its lines, instead use the field `linkToTransactionIds` on the parent transaction, if available. If the parent transaction is a bill or an item receipt, you can only link to purchase orders; QuickBooks does not support linking these transactions to other transaction types. Transaction lines can only be linked when creating this item line and cannot be unlinked later. **IMPORTANT**: If you use `linkToTransactionLine` on this item line, you cannot use the field `item` on this line (QuickBooks will return an error) because this field brings in all of the item information you need. You can, however, specify whatever `quantity` or `rate` that you want, or any other transaction line element other than `item`. If the parent transaction supports the `linkToTransactionIds` field, you can use both `linkToTransactionLine` (on this item line) and `linkToTransactionIds` (on its parent transaction) in the same request as long as they do NOT link to the same transaction (otherwise, QuickBooks will return an error). QuickBooks will also return an error if you attempt to link a transaction that is empty or already closed. **IMPORTANT**: By default, QuickBooks will not return any information about the linked transaction line in this endpoint's response even when this request is successful. To see the transaction line linked via this field, refetch the parent transaction and check the `linkedTransactions` response field. If fetching a list of transactions, you must also specify the parameter `includeLinkedTransactions=true` to see the `linkedTransactions` response field. type: object properties: transactionId: type: string maxLength: 36 description: >- The ID of the transaction to which to link this transaction. example: 123ABC-1234567890 transactionLineId: type: string maxLength: 36 description: >- The ID of the transaction line to which to link this transaction. example: 456DEF-1234567890 required: - transactionId - transactionLineId additionalProperties: false salesRepresentativeId: description: >- The item line's sales representative. Sales representatives can be employees, vendors, or other names in QuickBooks. example: 80000001-1234567890 type: string maxLength: 36 customFields: description: >- The custom fields for the item line object, added as user-defined data extensions, not included in the standard QuickBooks object. minItems: 1 type: array items: type: object properties: ownerId: type: string description: >- 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. example: '0' name: type: string description: >- 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. example: Customer Rating value: type: string description: >- The value of this custom field. The maximum length depends on the field's data type. example: Premium required: - ownerId - name - value additionalProperties: false additionalProperties: false itemGroupLines: description: >- The bill's item group lines, each representing a predefined set of items bundled together because they are commonly purchased together or grouped for faster entry. minItems: 1 type: array items: type: object properties: itemGroupId: description: >- The item group line's item group, representing a predefined set of items bundled because they are commonly purchased together or grouped for faster entry. example: 80000001-1234567890 type: string maxLength: 36 quantity: description: >- The quantity of the item group associated with this item group line. This field cannot be cleared. **NOTE**: Do not use this field if the associated item group is a discount item group. example: 5 type: number unitOfMeasure: description: >- The unit-of-measure used for the `quantity` in this item group line. Must be a valid unit within the item's available units of measure. example: Each type: string inventorySiteId: description: >- The site location where inventory for the item group associated with this item group line is stored. example: 80000001-1234567890 type: string maxLength: 36 inventorySiteLocationId: description: >- The specific location (e.g., bin or shelf) within the inventory site where the item group associated with this item group line is stored. example: 80000001-1234567890 type: string maxLength: 36 customFields: description: >- The custom fields for the item group line object, added as user-defined data extensions, not included in the standard QuickBooks object. minItems: 1 type: array items: type: object properties: ownerId: type: string description: >- 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. example: '0' name: type: string description: >- 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. example: Customer Rating value: type: string description: >- The value of this custom field. The maximum length depends on the field's data type. example: Premium required: - ownerId - name - value additionalProperties: false required: - itemGroupId additionalProperties: false required: - vendorId - transactionDate additionalProperties: false responses: '200': description: Returns the newly created bill. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_bill' x-codeSamples: - lang: JavaScript source: |- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const bill = await conductor.qbd.bills.create({ transactionDate: '2024-10-01', vendorId: '80000001-1234567890', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(bill.id); - lang: Python source: |- import os from datetime import date from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) bill = conductor.qbd.bills.create( transaction_date=date.fromisoformat("2024-10-01"), vendor_id="80000001-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(bill.id) /quickbooks-desktop/bills/{id}: get: summary: Retrieve a bill description: >- Retrieves a bill by ID. **IMPORTANT:** If you need to fetch multiple specific bills 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. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: The QuickBooks-assigned unique identifier of the bill to retrieve. example: 123ABC-1234567890 required: true description: The QuickBooks-assigned unique identifier of the bill to retrieve. responses: '200': description: Returns the specified bill. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_bill' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const bill = await conductor.qbd.bills.retrieve('123ABC-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(bill.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) bill = conductor.qbd.bills.retrieve( id="123ABC-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(bill.id) post: summary: Update a bill description: >- Updates an existing vendor bill while keeping the required references intact. QuickBooks does not let this update request add new purchase order links, and you must continue to supply the vendor, accounts payable account, and at least one expense or item line when you resubmit the bill. **NOTE:** If you include `expenseLines`, `itemLines`, or `itemGroupLines`, 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. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: The QuickBooks-assigned unique identifier of the bill to update. example: 123ABC-1234567890 required: true description: The QuickBooks-assigned unique identifier of the bill to update. requestBody: required: true content: application/json: schema: type: object properties: revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of the bill 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. example: '1721172183' vendorId: description: >- The vendor who sent this bill for goods or services purchased. example: 80000001-1234567890 type: string maxLength: 36 vendorAddress: description: The address of the vendor who sent this bill. type: object properties: line1: description: >- The first line of the address (e.g., street, PO Box, or company name). Maximum length: 41 characters. example: Conductor Labs Inc. type: string maxLength: 41 line2: description: >- The second line of the address, if needed (e.g., apartment, suite, unit, or building). Maximum length: 41 characters. example: 540 Market St. type: string maxLength: 41 line3: description: |- The third line of the address, if needed. Maximum length: 41 characters. example: Suite 100 type: string maxLength: 41 line4: description: |- The fourth line of the address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 line5: description: |- The fifth line of the address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 city: description: >- The city, district, suburb, town, or village name of the address. Maximum length: 31 characters. example: San Francisco type: string maxLength: 31 state: description: >- The state, county, province, or region name of the address. Maximum length: 21 characters. example: CA type: string maxLength: 21 postalCode: description: |- The postal code or ZIP code of the address. Maximum length: 13 characters. example: '94110' type: string maxLength: 13 country: description: The country name of the address. example: United States type: string note: description: >- A note written at the bottom of the address in the form in which it appears, such as the invoice form. example: Conductor HQ type: string additionalProperties: false payablesAccountId: description: >- The Accounts-Payable (A/P) account to which this bill is assigned, used for accounts-payable tracking. If omitted, QuickBooks Desktop uses the default A/P account configured in the company file. **IMPORTANT**: If this bill is linked to other transactions, this A/P account must match the `payablesAccount` used in those other transactions. example: 80000001-1234567890 type: string maxLength: 36 transactionDate: description: The date of this bill, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-01' type: string format: date dueDate: description: >- The date by which this bill must be paid, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-31' type: string format: date refNumber: description: >- The case-sensitive user-defined reference number for this bill, 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: 20 characters. example: BILL-1234 type: string maxLength: 20 termsId: description: >- The bill's payment terms, defining when payment is due and any applicable discounts. example: 80000001-1234567890 type: string maxLength: 36 memo: description: >- A memo or note for this bill that appears in the Accounts-Payable register and in reports that include this bill. example: Office supplies for September type: string salesTaxCodeId: description: >- The sales-tax code for this bill, 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 bill'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. example: 80000001-1234567890 type: string maxLength: 36 exchangeRate: description: >- The market exchange rate between this bill'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: 1.2345 type: number clearExpenseLines: description: >- When `true`, removes all existing expense lines associated with this bill. To modify or add individual expense lines, use the field `expenseLines` instead. example: false type: boolean expenseLines: description: >- The bill's expense lines, each representing one line in this expense. **IMPORTANT**: 1. Including this array in your update request will **REPLACE** all existing expense lines for the bill with this array. To keep any existing expense lines, you must include them in this array even if they have not changed. **Any expense lines not included will be removed.** 2. To add a new expense line, include it here with the `id` field set to `-1`. 3. If you do not wish to modify any expense lines, omit this field entirely to keep them unchanged. minItems: 1 type: array items: type: object properties: id: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of an existing expense line you wish to retain or update. **IMPORTANT**: Set this field to `-1` for new expense lines you wish to add. example: 456DEF-1234567890 accountId: description: >- The expense account being debited (increased) for this expense line. The corresponding account being credited is usually a liability account (e.g., Accounts-Payable) or an asset account (e.g., Cash), depending on the transaction type. example: 80000001-1234567890 type: string maxLength: 36 amount: description: >- The monetary amount of this expense line, represented as a decimal string. Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45"). example: '1000.00' type: string memo: description: A memo or note for this expense line. example: New office chair type: string payeeId: description: >- 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). example: 80000001-1234567890 type: string maxLength: 36 classId: description: >- The expense 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 expense lines unless overridden here, at the transaction line level. example: 80000001-1234567890 type: string maxLength: 36 salesTaxCodeId: description: >- The sales-tax code for this expense 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. example: 80000001-1234567890 type: string maxLength: 36 billingStatus: description: The billing status of this expense line. example: billable type: string enum: - billable - has_been_billed - not_billable salesRepresentativeId: description: >- The expense line's sales representative. Sales representatives can be employees, vendors, or other names in QuickBooks. example: 80000001-1234567890 type: string maxLength: 36 required: - id additionalProperties: false clearItemLines: description: >- When `true`, removes all existing item lines associated with this bill. To modify or add individual item lines, use the field `itemLines` instead. example: false type: boolean itemLines: description: >- The bill's item lines, each representing the purchase of a specific item or service. **IMPORTANT**: 1. Including this array in your update request will **REPLACE** all existing item lines for the bill with this array. To keep any existing item lines, you must include them in this array even if they have not changed. **Any item lines not included will be removed.** 2. To add a new item line, include it here with the `id` field set to `-1`. 3. If you do not wish to modify any item lines, omit this field entirely to keep them unchanged. minItems: 1 type: array items: type: object properties: id: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of an existing item line you wish to retain or update. **IMPORTANT**: Set this field to `-1` for new item lines you wish to add. example: 456DEF-1234567890 itemId: description: >- The item associated with this item 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. example: 80000001-1234567890 type: string maxLength: 36 inventorySiteId: description: >- The site location where inventory for the item associated with this item line is stored. example: 80000001-1234567890 type: string maxLength: 36 inventorySiteLocationId: description: >- The specific location (e.g., bin or shelf) within the inventory site where the item associated with this item line is stored. example: 80000001-1234567890 type: string maxLength: 36 serialNumber: description: >- The serial number of the item associated with this item line. This is used for tracking individual units of serialized inventory items. example: SN1234567890 type: string lotNumber: description: >- The lot number of the item associated with this item line. Used for tracking groups of inventory items that are purchased or manufactured together. example: LOT2023-001 type: string expirationDate: description: >- The expiration date for the serial number or lot number of the item associated with this item line, in ISO 8601 format (YYYY-MM-DD). This is particularly relevant for perishable or time-sensitive inventory items. Note that this field is only supported on QuickBooks Desktop 2023 or later. example: '2025-12-31' type: string format: date description: description: A description of this item line. example: High-quality widget with custom engraving type: string quantity: description: >- The quantity of the item associated with this item line. This field cannot be cleared. **NOTE**: Do not use this field if the associated item is a discount item. example: 5 type: number unitOfMeasure: description: >- The unit-of-measure used for the `quantity` in this item line. Must be a valid unit within the item's available units of measure. example: Each type: string overrideUnitOfMeasureSetId: description: >- Specifies an alternative unit-of-measure set when updating this item 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. example: 80000001-1234567890 type: string maxLength: 36 cost: description: >- The cost of this item line, represented as a decimal string. If both `quantity` and `amount` are specified but not `cost`, QuickBooks will use them to calculate `cost`. Decimal string format: up to 5 decimal places and up to 10 digits before the decimal point (for example, "123.45"). example: '1000.00' type: string amount: description: >- The monetary amount of this item line, represented as a decimal string. If both `quantity` and `cost` are specified but not `amount`, QuickBooks will use them to calculate `amount`. If `amount`, `cost`, and `quantity` are all unspecified, then QuickBooks will calculate `amount` based on a `quantity` of `1` and the suggested `cost`. This field cannot be cleared. Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45"). example: '1000.00' type: string customerId: description: >- The customer or customer-job associated with this item line. example: 80000001-1234567890 type: string maxLength: 36 classId: description: >- The item 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 item lines unless overridden here, at the transaction line level. example: 80000001-1234567890 type: string maxLength: 36 salesTaxCodeId: description: >- The sales-tax code for this item 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. example: 80000001-1234567890 type: string maxLength: 36 billingStatus: description: The billing status of this item line. example: billable type: string enum: - billable - has_been_billed - not_billable overrideItemAccountId: description: >- The account to use for this item line, overriding the default account associated with the item. example: 80000001-1234567890 type: string maxLength: 36 salesRepresentativeId: description: >- The item line's sales representative. Sales representatives can be employees, vendors, or other names in QuickBooks. example: 80000001-1234567890 type: string maxLength: 36 required: - id additionalProperties: false itemGroupLines: description: >- The bill's item group lines, each representing a predefined set of items bundled together because they are commonly purchased together or grouped for faster entry. **IMPORTANT**: 1. Including this array in your update request will **REPLACE** all existing item group lines for the bill with this array. To keep any existing item group lines, you must include them in this array even if they have not changed. **Any item group lines not included will be removed.** 2. To add a new item group line, include it here with the `id` field set to `-1`. 3. If you do not wish to modify any item group lines, omit this field entirely to keep them unchanged. minItems: 1 type: array items: type: object properties: id: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of an existing item group line you wish to retain or update. **IMPORTANT**: Set this field to `-1` for new item group lines you wish to add. example: 456DEF-1234567890 itemGroupId: description: >- The item group line's item group, representing a predefined set of items bundled because they are commonly purchased together or grouped for faster entry. example: 80000001-1234567890 type: string maxLength: 36 quantity: description: >- The quantity of the item group associated with this item group line. This field cannot be cleared. **NOTE**: Do not use this field if the associated item group is a discount item group. example: 5 type: number unitOfMeasure: description: >- The unit-of-measure used for the `quantity` in this item group line. Must be a valid unit within the item's available units of measure. example: Each type: string overrideUnitOfMeasureSetId: description: >- Specifies an alternative unit-of-measure set when updating this item group 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. example: 80000001-1234567890 type: string maxLength: 36 itemLines: description: >- The item group line's item lines, each representing the purchase of a specific item or service. **IMPORTANT**: 1. Including this array in your update request will **REPLACE** all existing item lines for the item group line with this array. To keep any existing item lines, you must include them in this array even if they have not changed. **Any item lines not included will be removed.** 2. To add a new item line, include it here with the `id` field set to `-1`. 3. If you do not wish to modify any item lines, omit this field entirely to keep them unchanged. minItems: 1 type: array items: type: object properties: id: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of an existing item line you wish to retain or update. **IMPORTANT**: Set this field to `-1` for new item lines you wish to add. example: 456DEF-1234567890 itemId: description: >- The item associated with this item 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. example: 80000001-1234567890 type: string maxLength: 36 inventorySiteId: description: >- The site location where inventory for the item associated with this item line is stored. example: 80000001-1234567890 type: string maxLength: 36 inventorySiteLocationId: description: >- The specific location (e.g., bin or shelf) within the inventory site where the item associated with this item line is stored. example: 80000001-1234567890 type: string maxLength: 36 serialNumber: description: >- The serial number of the item associated with this item line. This is used for tracking individual units of serialized inventory items. example: SN1234567890 type: string lotNumber: description: >- The lot number of the item associated with this item line. Used for tracking groups of inventory items that are purchased or manufactured together. example: LOT2023-001 type: string expirationDate: description: >- The expiration date for the serial number or lot number of the item associated with this item line, in ISO 8601 format (YYYY-MM-DD). This is particularly relevant for perishable or time-sensitive inventory items. Note that this field is only supported on QuickBooks Desktop 2023 or later. example: '2025-12-31' type: string format: date description: description: A description of this item line. example: High-quality widget with custom engraving type: string quantity: description: >- The quantity of the item associated with this item line. This field cannot be cleared. **NOTE**: Do not use this field if the associated item is a discount item. example: 5 type: number unitOfMeasure: description: >- The unit-of-measure used for the `quantity` in this item line. Must be a valid unit within the item's available units of measure. example: Each type: string overrideUnitOfMeasureSetId: description: >- Specifies an alternative unit-of-measure set when updating this item 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. example: 80000001-1234567890 type: string maxLength: 36 cost: description: >- The cost of this item line, represented as a decimal string. If both `quantity` and `amount` are specified but not `cost`, QuickBooks will use them to calculate `cost`. Decimal string format: up to 5 decimal places and up to 10 digits before the decimal point (for example, "123.45"). example: '1000.00' type: string amount: description: >- The monetary amount of this item line, represented as a decimal string. If both `quantity` and `cost` are specified but not `amount`, QuickBooks will use them to calculate `amount`. If `amount`, `cost`, and `quantity` are all unspecified, then QuickBooks will calculate `amount` based on a `quantity` of `1` and the suggested `cost`. This field cannot be cleared. Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45"). example: '1000.00' type: string customerId: description: >- The customer or customer-job associated with this item line. example: 80000001-1234567890 type: string maxLength: 36 classId: description: >- The item 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 item lines unless overridden here, at the transaction line level. example: 80000001-1234567890 type: string maxLength: 36 salesTaxCodeId: description: >- The sales-tax code for this item 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. example: 80000001-1234567890 type: string maxLength: 36 billingStatus: description: The billing status of this item line. example: billable type: string enum: - billable - has_been_billed - not_billable overrideItemAccountId: description: >- The account to use for this item line, overriding the default account associated with the item. example: 80000001-1234567890 type: string maxLength: 36 salesRepresentativeId: description: >- The item line's sales representative. Sales representatives can be employees, vendors, or other names in QuickBooks. example: 80000001-1234567890 type: string maxLength: 36 required: - id additionalProperties: false required: - id additionalProperties: false required: - revisionNumber additionalProperties: false responses: '200': description: Returns the updated bill. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_bill' x-codeSamples: - lang: JavaScript source: |- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const bill = await conductor.qbd.bills.update('123ABC-1234567890', { revisionNumber: '1721172183', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(bill.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) bill = conductor.qbd.bills.update( id="123ABC-1234567890", revision_number="1721172183", conductor_end_user_id="end_usr_1234567abcdefg", ) print(bill.id) delete: summary: Delete a bill description: >- Permanently deletes a bill. The deletion will fail if the bill is currently in use or has any linked transactions that are in use. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: The QuickBooks-assigned unique identifier of the bill to delete. example: 123ABC-1234567890 required: true description: The QuickBooks-assigned unique identifier of the bill to delete. responses: '200': description: >- Returns a confirmation of the deletion with the ID of the deleted bill. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: id: type: string description: >- The QuickBooks-assigned unique identifier of the deleted bill. example: 123ABC-1234567890 objectType: description: The type of object. This value is always `"qbd_bill"`. example: qbd_bill type: string const: qbd_bill refNumber: anyOf: - type: string - type: 'null' description: >- The case-sensitive user-defined reference number of the deleted bill. example: BILL-1234 deleted: type: boolean description: Indicates whether the bill was deleted. example: true required: - id - objectType - refNumber - deleted additionalProperties: false x-codeSamples: - lang: JavaScript source: |- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const bill = await conductor.qbd.bills.delete('123ABC-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(bill.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) bill = conductor.qbd.bills.delete( id="123ABC-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(bill.id) /quickbooks-desktop/bills/{id}/void: post: summary: Void a bill description: >- Voids a bill by setting its amount to zero while keeping a record of it in QuickBooks. The void will fail if the bill is currently in use or has any linked transactions that are in use. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: The QuickBooks-assigned unique identifier of the bill to void. example: 123ABC-1234567890 required: true description: The QuickBooks-assigned unique identifier of the bill to void. responses: '200': description: Returns a confirmation of the void with the ID of the voided bill. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: id: type: string description: >- The QuickBooks-assigned unique identifier of the voided bill. example: 123ABC-1234567890 objectType: description: The type of object. This value is always `"qbd_bill"`. example: qbd_bill type: string const: qbd_bill createdAt: anyOf: - type: string - type: 'null' description: >- The date and time when this bill 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. example: 2025-01-01T12:34:56.000Z updatedAt: anyOf: - type: string - type: 'null' description: >- The date and time when this bill 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. example: 2025-02-01T12:34:56.000Z refNumber: anyOf: - type: string - type: 'null' description: >- The case-sensitive user-defined reference number of the voided bill. example: BILL-1234 voided: type: boolean description: Indicates whether the bill was voided. example: true required: - id - objectType - createdAt - updatedAt - refNumber - voided additionalProperties: false x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const response = await conductor.qbd.bills.void('123ABC-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(response.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) response = conductor.qbd.bills.void( id="123ABC-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(response.id) /quickbooks-desktop/bills-to-pay: get: summary: List bills and credits available to pay for a vendor description: >- Lists open vendor bills and available vendor credits for a specific QuickBooks Desktop vendor. Use each `bill.billId` as `applyToTransactions[].transactionId` in bill-payment requests. To apply a returned credit, place it under the target bill's `applyToTransactions[].applyCredits[]` entry, set `creditTransactionId` to `credit.creditTransactionId`, and choose an `appliedAmount` that does not exceed `credit.creditRemaining` or the target bill's remaining amount due. **NOTE:** QuickBooks Desktop does not support pagination for bills to pay; hence, there is no `cursor` parameter. Users typically have few bills to pay. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: query name: vendorId schema: type: string maxLength: 36 description: >- The vendor whose open bills and available credits should be returned. example: 80000001-1234567890 required: true description: >- The vendor whose open bills and available credits should be returned. - in: query name: payablesAccountId schema: description: >- Filter for open bills and available credits assigned to this Accounts-Payable account. If omitted, QuickBooks Desktop uses the default A/P account configured in the company file. example: 80000001-1234567890 type: string maxLength: 36 description: >- Filter for open bills and available credits assigned to this Accounts-Payable account. If omitted, QuickBooks Desktop uses the default A/P account configured in the company file. - in: query name: dueDate schema: description: >- Filter the bill branch to open bills due on or before this date, in ISO 8601 format (YYYY-MM-DD). If omitted, QuickBooks Desktop returns open bills from all due dates. Available credits can still be returned because credits do not have a due date. example: '2025-02-01' type: string format: date description: >- Filter the bill branch to open bills due on or before this date, in ISO 8601 format (YYYY-MM-DD). If omitted, QuickBooks Desktop returns open bills from all due dates. Available credits can still be returned because credits do not have a due date. - in: query name: currencyIds schema: description: Filter for open bills and available credits in these currencies. example: - 80000001-1234567890 type: array items: type: string description: Filter for open bills and available credits in these currencies. responses: '200': description: >- Returns open vendor bills and available vendor credits for a specific QuickBooks Desktop vendor. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: objectType: description: The type of object. This value is always `"list"`. example: list type: string const: list url: type: string description: The endpoint URL where this list can be accessed. example: /v1/quickbooks-desktop/bills-to-pay data: type: array items: $ref: '#/components/schemas/qbd_bill_to_pay' description: >- The array of bills-to-pay records. Each record has either a `bill` object or a `credit` object, and the other branch is `null`. required: - objectType - url - data additionalProperties: false x-codeSamples: - lang: JavaScript source: |- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const billsToPays = await conductor.qbd.billsToPay.list({ vendorId: '80000001-1234567890', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(billsToPays.data); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) bills_to_pays = conductor.qbd.bills_to_pay.list( vendor_id="80000001-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(bills_to_pays.data) /quickbooks-desktop/build-assemblies: get: summary: List all build assemblies description: >- Returns a list of build assemblies. Use the `cursor` parameter to paginate through the results. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: query name: ids schema: description: >- Filter for specific build assemblies 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 type: array items: type: string description: >- Filter for specific build assemblies 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. - in: query name: refNumbers schema: description: >- Filter for specific build assemblies 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: - BUILD ASSEMBLY-1234 type: array items: type: string description: >- Filter for specific build assemblies 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. - in: query name: limit schema: default: 150 description: >- 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. example: 150 type: integer minimum: 1 maximum: 150 description: >- 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. - in: query name: cursor schema: description: >- 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 type: string description: >- 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. - in: query name: updatedAfter schema: description: >- Filter for build assemblies 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. example: 2025-01-01T12:34:56.000Z type: string description: >- Filter for build assemblies 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. - in: query name: updatedBefore schema: description: >- Filter for build assemblies 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. example: 2025-02-01T12:34:56.000Z type: string description: >- Filter for build assemblies 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. - in: query name: transactionDateFrom schema: description: >- Filter for build assemblies 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-01` → `2025-01-01T00:00:00`). example: '2025-01-01' type: string format: date description: >- Filter for build assemblies 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-01` → `2025-01-01T00:00:00`). - in: query name: transactionDateTo schema: description: >- Filter for build assemblies 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-01` → `2025-01-01T23:59:59`). example: '2025-02-01' type: string format: date description: >- Filter for build assemblies 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-01` → `2025-01-01T23:59:59`). - in: query name: itemIds schema: description: Filter for build assemblies containing these items. example: - 80000001-1234567890 type: array items: type: string description: Filter for build assemblies containing these items. - in: query name: refNumberContains schema: description: >- Filter for build assemblies whose `refNumber` contains this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberStartsWith` or `refNumberEndsWith`. example: BUILD-1234 type: string description: >- Filter for build assemblies whose `refNumber` contains this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberStartsWith` or `refNumberEndsWith`. - in: query name: refNumberStartsWith schema: description: >- Filter for build assemblies whose `refNumber` starts with this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberContains` or `refNumberEndsWith`. example: BUILD type: string description: >- Filter for build assemblies whose `refNumber` starts with this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberContains` or `refNumberEndsWith`. - in: query name: refNumberEndsWith schema: description: >- Filter for build assemblies whose `refNumber` ends with this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberContains` or `refNumberStartsWith`. example: '1234' type: string description: >- Filter for build assemblies whose `refNumber` ends with this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberContains` or `refNumberStartsWith`. - in: query name: refNumberFrom schema: description: >- Filter for build assemblies 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: BUILD-0001 type: string description: >- Filter for build assemblies 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. - in: query name: refNumberTo schema: description: >- Filter for build assemblies 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: BUILD-9999 type: string description: >- Filter for build assemblies 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. - in: query name: pendingStatus schema: description: >- Filter for build assemblies that are pending, not pending, or both. example: pending type: string enum: - all - not_pending - pending default: all description: Filter for build assemblies that are pending, not pending, or both. - in: query name: includeComponentLineItems schema: description: >- Whether to include component line items in the response. Defaults to `true`. example: true type: boolean default: true description: >- Whether to include component line items in the response. Defaults to `true`. responses: '200': description: Returns a list of build assemblies. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: objectType: description: The type of object. This value is always `"list"`. example: list type: string const: list url: type: string description: The endpoint URL where this list can be accessed. example: /v1/quickbooks-desktop/build-assemblies data: type: array items: $ref: '#/components/schemas/qbd_build_assembly' description: The array of build assemblies. nextCursor: anyOf: - type: string - type: 'null' description: >- The `nextCursor` is a pagination token returned in the response when you use the `limit` parameter in your request. To retrieve subsequent pages of results, include this token as the value of the `cursor` request parameter in your following API calls. **NOTE**: The `nextCursor` value remains constant throughout the pagination process for a specific list instance; continue to use the same `nextCursor` token in each request to fetch additional pages. example: 12345678-abcd-abcd-example-1234567890ab remainingCount: anyOf: - type: number - type: 'null' description: The number of objects remaining to be fetched. example: 10 hasMore: type: boolean description: Indicates whether there are more objects to be fetched. required: - objectType - url - data - nextCursor - remainingCount - hasMore additionalProperties: false x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); // Automatically fetches more pages as needed. for await (const buildAssembly of conductor.qbd.buildAssemblies.list({ conductorEndUserId: 'end_usr_1234567abcdefg', })) { console.log(buildAssembly.id); } - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) page = conductor.qbd.build_assemblies.list( conductor_end_user_id="end_usr_1234567abcdefg", ) page = page.data[0] print(page.id) post: summary: Create a build assembly description: >- Creates a build assembly transaction that consumes component quantities and increases the finished assembly on hand. If components are short you can mark the build as pending instead of failing. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. requestBody: required: true content: application/json: schema: type: object properties: inventoryAssemblyItemId: description: >- The inventory assembly item associated with this build assembly. An inventory assembly item is assembled or manufactured from other inventory items, and the items and/or assemblies that make up the assembly are called components. example: 80000001-1234567890 type: string maxLength: 36 inventorySiteId: description: >- The site location where inventory for the item associated with this build assembly is stored. example: 80000001-1234567890 type: string maxLength: 36 inventorySiteLocationId: description: >- The specific location (e.g., bin or shelf) within the inventory site where the item associated with this build assembly is stored. example: 80000001-1234567890 type: string maxLength: 36 serialNumber: description: >- The serial number of the item associated with this build assembly. This is used for tracking individual units of serialized inventory items. example: SN1234567890 type: string lotNumber: description: >- The lot number of the item associated with this build assembly. Used for tracking groups of inventory items that are purchased or manufactured together. example: LOT2023-001 type: string expirationDate: description: >- The expiration date for the serial number or lot number of the item associated with this build assembly, in ISO 8601 format (YYYY-MM-DD). This is particularly relevant for perishable or time-sensitive inventory items. Note that this field is only supported on QuickBooks Desktop 2023 or later. example: '2025-12-31' type: string format: date transactionDate: type: string format: date description: >- The date of this build assembly, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-01' refNumber: description: >- The case-sensitive user-defined reference number for this build assembly, 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. When left blank in this create request, this field will be left blank in QuickBooks (i.e., it does *not* auto-increment). Maximum length: 11 characters. example: BUILD-1234 type: string maxLength: 11 memo: description: A memo or note for this build assembly. example: Assembled 25 units of Model ABC-123 Office Chair type: string quantityToBuild: description: >- The number of build assembly to be built. The transaction will fail if the number specified here exceeds the number of on-hand components. example: 7 type: number markPendingIfRequired: description: >- When `true`, the build assembly will be marked pending if there are insufficient quantities to complete the build assembly. example: true type: boolean externalId: type: string format: uuid description: >- 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. **IMPORTANT**: This field must be formatted as a valid GUID; otherwise, QuickBooks will return an error. example: 12345678-abcd-1234-abcd-1234567890ab required: - inventoryAssemblyItemId - transactionDate - quantityToBuild additionalProperties: false responses: '200': description: Returns the newly created build assembly. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_build_assembly' x-codeSamples: - lang: JavaScript source: |- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const buildAssembly = await conductor.qbd.buildAssemblies.create({ inventoryAssemblyItemId: '80000001-1234567890', quantityToBuild: 7, transactionDate: '2024-10-01', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(buildAssembly.id); - lang: Python source: |- import os from datetime import date from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) build_assembly = conductor.qbd.build_assemblies.create( inventory_assembly_item_id="80000001-1234567890", quantity_to_build=7, transaction_date=date.fromisoformat("2024-10-01"), conductor_end_user_id="end_usr_1234567abcdefg", ) print(build_assembly.id) /quickbooks-desktop/build-assemblies/{id}: get: summary: Retrieve a build assembly description: >- Retrieves a build assembly by ID. **IMPORTANT:** If you need to fetch multiple specific build assemblies 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. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the build assembly to retrieve. example: 123ABC-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the build assembly to retrieve. responses: '200': description: Returns the specified build assembly. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_build_assembly' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const buildAssembly = await conductor.qbd.buildAssemblies.retrieve('123ABC-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(buildAssembly.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) build_assembly = conductor.qbd.build_assemblies.retrieve( id="123ABC-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(build_assembly.id) post: summary: Update a build assembly description: Updates an existing build assembly. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the build assembly to update. example: 123ABC-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the build assembly to update. requestBody: required: true content: application/json: schema: type: object properties: revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of the build assembly 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. example: '1721172183' inventorySiteId: description: >- The site location where inventory for the item associated with this build assembly is stored. example: 80000001-1234567890 type: string maxLength: 36 inventorySiteLocationId: description: >- The specific location (e.g., bin or shelf) within the inventory site where the item associated with this build assembly is stored. example: 80000001-1234567890 type: string maxLength: 36 serialNumber: description: >- The serial number of the item associated with this build assembly. This is used for tracking individual units of serialized inventory items. example: SN1234567890 type: string lotNumber: description: >- The lot number of the item associated with this build assembly. Used for tracking groups of inventory items that are purchased or manufactured together. example: LOT2023-001 type: string expirationDate: description: >- The expiration date for the serial number or lot number of the item associated with this build assembly, in ISO 8601 format (YYYY-MM-DD). This is particularly relevant for perishable or time-sensitive inventory items. Note that this field is only supported on QuickBooks Desktop 2023 or later. example: '2025-12-31' type: string format: date transactionDate: description: >- The date of this build assembly, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-01' type: string format: date refNumber: description: >- The case-sensitive user-defined reference number for this build assembly, 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. example: BUILD-1234 type: string maxLength: 11 memo: description: A memo or note for this build assembly. example: Assembled 25 units of Model ABC-123 Office Chair type: string quantityToBuild: description: >- The number of build assembly to be built. The transaction will fail if the number specified here exceeds the number of on-hand components. example: 7 type: number markPendingIfRequired: description: >- When `true`, the build assembly will be marked pending if there are insufficient quantities to complete the build assembly. example: true type: boolean removePending: description: >- When `true`, changes this build assembly's status from pending to non-pending, which effectively performs the build transaction. The operation will fail if there are insufficient component quantities on hand to complete the build. example: true type: boolean required: - revisionNumber additionalProperties: false responses: '200': description: Returns the updated build assembly. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_build_assembly' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const buildAssembly = await conductor.qbd.buildAssemblies.update('123ABC-1234567890', { revisionNumber: '1721172183', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(buildAssembly.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) build_assembly = conductor.qbd.build_assemblies.update( id="123ABC-1234567890", revision_number="1721172183", conductor_end_user_id="end_usr_1234567abcdefg", ) print(build_assembly.id) delete: summary: Delete a build assembly description: >- Permanently deletes a build assembly. The deletion will fail if the build assembly is currently in use or has any linked transactions that are in use. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the build assembly to delete. example: 123ABC-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the build assembly to delete. responses: '200': description: >- Returns a confirmation of the deletion with the ID of the deleted build assembly. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: id: type: string description: >- The QuickBooks-assigned unique identifier of the deleted build assembly. example: 123ABC-1234567890 objectType: description: >- The type of object. This value is always `"qbd_build_assembly"`. example: qbd_build_assembly type: string const: qbd_build_assembly refNumber: anyOf: - type: string - type: 'null' description: >- The case-sensitive user-defined reference number of the deleted build assembly. example: BUILD-1234 deleted: type: boolean description: Indicates whether the build assembly was deleted. example: true required: - id - objectType - refNumber - deleted additionalProperties: false x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const buildAssembly = await conductor.qbd.buildAssemblies.delete('123ABC-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(buildAssembly.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) build_assembly = conductor.qbd.build_assemblies.delete( id="123ABC-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(build_assembly.id) /quickbooks-desktop/checks: get: summary: List all checks description: >- Returns a list of checks. Use the `cursor` parameter to paginate through the results. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: query name: ids schema: description: >- Filter for specific checks 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 type: array items: type: string description: >- Filter for specific checks 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. - in: query name: refNumbers schema: description: >- Filter for specific checks 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: - CHECK-1234 type: array items: type: string description: >- Filter for specific checks 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. - in: query name: limit schema: default: 150 description: >- 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. example: 150 type: integer minimum: 1 maximum: 150 description: >- 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. - in: query name: cursor schema: description: >- 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 type: string description: >- 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. - in: query name: updatedAfter schema: description: >- Filter for checks 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. example: 2025-01-01T12:34:56.000Z type: string description: >- Filter for checks 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. - in: query name: updatedBefore schema: description: >- Filter for checks 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. example: 2025-02-01T12:34:56.000Z type: string description: >- Filter for checks 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. - in: query name: transactionDateFrom schema: description: >- Filter for checks 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-01` → `2025-01-01T00:00:00`). example: '2025-01-01' type: string format: date description: >- Filter for checks 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-01` → `2025-01-01T00:00:00`). - in: query name: transactionDateTo schema: description: >- Filter for checks 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-01` → `2025-01-01T23:59:59`). example: '2025-02-01' type: string format: date description: >- Filter for checks 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-01` → `2025-01-01T23:59:59`). - in: query name: payeeIds schema: description: >- Filter for checks addressed to these payees. These are the people or companies who will receive these checks. example: - 80000001-1234567890 type: array items: type: string description: >- Filter for checks addressed to these payees. These are the people or companies who will receive these checks. - in: query name: accountIds schema: description: Filter for checks associated with these accounts. example: - 80000001-1234567890 type: array items: type: string description: Filter for checks associated with these accounts. - in: query name: refNumberContains schema: description: >- Filter for checks whose `refNumber` contains this substring. (For checks, this field is the check number.) **NOTE**: If you use this parameter, you cannot also use `refNumberStartsWith` or `refNumberEndsWith`. example: CHECK-1234 type: string description: >- Filter for checks whose `refNumber` contains this substring. (For checks, this field is the check number.) **NOTE**: If you use this parameter, you cannot also use `refNumberStartsWith` or `refNumberEndsWith`. - in: query name: refNumberStartsWith schema: description: >- Filter for checks whose `refNumber` starts with this substring. (For checks, this field is the check number.) **NOTE**: If you use this parameter, you cannot also use `refNumberContains` or `refNumberEndsWith`. example: CHECK type: string description: >- Filter for checks whose `refNumber` starts with this substring. (For checks, this field is the check number.) **NOTE**: If you use this parameter, you cannot also use `refNumberContains` or `refNumberEndsWith`. - in: query name: refNumberEndsWith schema: description: >- Filter for checks whose `refNumber` ends with this substring. (For checks, this field is the check number.) **NOTE**: If you use this parameter, you cannot also use `refNumberContains` or `refNumberStartsWith`. example: '1234' type: string description: >- Filter for checks whose `refNumber` ends with this substring. (For checks, this field is the check number.) **NOTE**: If you use this parameter, you cannot also use `refNumberContains` or `refNumberStartsWith`. - in: query name: refNumberFrom schema: description: >- Filter for checks whose `refNumber` is greater than or equal to this value. (For checks, this field is the check number.) 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: CHECK-0001 type: string description: >- Filter for checks whose `refNumber` is greater than or equal to this value. (For checks, this field is the check number.) 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. - in: query name: refNumberTo schema: description: >- Filter for checks whose `refNumber` is less than or equal to this value. (For checks, this field is the check number.) 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: CHECK-9999 type: string description: >- Filter for checks whose `refNumber` is less than or equal to this value. (For checks, this field is the check number.) 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. - in: query name: currencyIds schema: description: Filter for checks in these currencies. example: - 80000001-1234567890 type: array items: type: string description: Filter for checks in these currencies. - in: query name: includeLineItems schema: description: Whether to include line items in the response. Defaults to `true`. example: true type: boolean default: true description: Whether to include line items in the response. Defaults to `true`. - in: query name: includeLinkedTransactions schema: description: >- Whether to include linked transactions in the response. Defaults to `false`. For example, a payment linked to the corresponding check. example: false type: boolean default: false description: >- Whether to include linked transactions in the response. Defaults to `false`. For example, a payment linked to the corresponding check. responses: '200': description: Returns a list of checks. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: objectType: description: The type of object. This value is always `"list"`. example: list type: string const: list url: type: string description: The endpoint URL where this list can be accessed. example: /v1/quickbooks-desktop/checks data: type: array items: $ref: '#/components/schemas/qbd_check' description: The array of checks. nextCursor: anyOf: - type: string - type: 'null' description: >- The `nextCursor` is a pagination token returned in the response when you use the `limit` parameter in your request. To retrieve subsequent pages of results, include this token as the value of the `cursor` request parameter in your following API calls. **NOTE**: The `nextCursor` value remains constant throughout the pagination process for a specific list instance; continue to use the same `nextCursor` token in each request to fetch additional pages. example: 12345678-abcd-abcd-example-1234567890ab remainingCount: anyOf: - type: number - type: 'null' description: The number of objects remaining to be fetched. example: 10 hasMore: type: boolean description: Indicates whether there are more objects to be fetched. required: - objectType - url - data - nextCursor - remainingCount - hasMore additionalProperties: false x-codeSamples: - lang: JavaScript source: |- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); // Automatically fetches more pages as needed. for await (const check of conductor.qbd.checks.list({ conductorEndUserId: 'end_usr_1234567abcdefg', })) { console.log(check.id); } - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) page = conductor.qbd.checks.list( conductor_end_user_id="end_usr_1234567abcdefg", ) page = page.data[0] print(page.id) post: summary: Create a check description: >- Creates a non-payroll check from a bank account. QuickBooks uses this request for direct expense disbursements; to pay vendor bills or payroll liabilities you must use the dedicated bill-payment or payroll transactions instead. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. requestBody: required: true content: application/json: schema: type: object properties: bankAccountId: description: >- The bank account from which the funds are being drawn for this check; e.g., Checking or Savings. This check will decrease the balance of this account. example: 80000001-1234567890 type: string maxLength: 36 payeeId: description: The person or company who will receive this check. example: 80000001-1234567890 type: string maxLength: 36 refNumber: description: >- The case-sensitive user-defined reference number for this check, 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. When left blank in this create request, this field will be left blank in QuickBooks (i.e., it does *not* auto-increment). **IMPORTANT**: For checks, this field is the check number. Maximum length: 11 characters. example: CHECK-1234 type: string maxLength: 11 transactionDate: type: string format: date description: >- The date written on this check, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-01' memo: description: The memo that is printed on this check. example: Payment for office supplies - Invoice INV-1234 type: string address: description: The address that is printed on the check. type: object properties: line1: description: >- The first line of the address (e.g., street, PO Box, or company name). Maximum length: 41 characters. example: Conductor Labs Inc. type: string maxLength: 41 line2: description: >- The second line of the address, if needed (e.g., apartment, suite, unit, or building). Maximum length: 41 characters. example: 540 Market St. type: string maxLength: 41 line3: description: |- The third line of the address, if needed. Maximum length: 41 characters. example: Suite 100 type: string maxLength: 41 line4: description: |- The fourth line of the address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 line5: description: |- The fifth line of the address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 city: description: >- The city, district, suburb, town, or village name of the address. Maximum length: 31 characters. example: San Francisco type: string maxLength: 31 state: description: >- The state, county, province, or region name of the address. Maximum length: 21 characters. example: CA type: string maxLength: 21 postalCode: description: |- The postal code or ZIP code of the address. Maximum length: 13 characters. example: '94110' type: string maxLength: 13 country: description: The country name of the address. example: United States type: string note: description: >- A note written at the bottom of the address in the form in which it appears, such as the invoice form. example: Conductor HQ type: string additionalProperties: false isQueuedForPrint: type: boolean description: >- Indicates whether this check is included in the queue of documents for QuickBooks to print. example: true salesTaxCodeId: description: >- The sales-tax code for this check, determining whether it is taxable or non-taxable. If set, this overrides any sales-tax codes defined on the payee. This can be overridden on the check'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. example: 80000001-1234567890 type: string maxLength: 36 exchangeRate: description: >- The market exchange rate between this check'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: 1.2345 type: number externalId: type: string format: uuid description: >- 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. **IMPORTANT**: This field must be formatted as a valid GUID; otherwise, QuickBooks will return an error. example: 12345678-abcd-1234-abcd-1234567890ab applyToTransactions: description: >- Transactions to be paid by this check. This will create a link between this check and the specified transactions. **IMPORTANT**: By default, QuickBooks will not return any information about the linked transactions in this endpoint's response even when this request is successful. To see the transactions linked via this field, refetch the check and check the `linkedTransactions` response field. If fetching a list of checks, you must also specify the parameter `includeLinkedTransactions=true` to see the `linkedTransactions` response field. minItems: 1 type: array items: type: object properties: transactionId: type: string maxLength: 36 description: The ID of the transaction to be paid by this check. example: 123ABC-1234567890 amount: description: >- The monetary amount from this check to apply to the specified transaction, represented as a decimal string. Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45"). example: '1000.00' type: string required: - transactionId additionalProperties: false expenseLines: description: >- The check's expense lines, each representing one line in this expense. minItems: 1 type: array items: type: object properties: accountId: description: >- The expense account being debited (increased) for this expense line. The corresponding account being credited is usually a liability account (e.g., Accounts-Payable) or an asset account (e.g., Cash), depending on the transaction type. example: 80000001-1234567890 type: string maxLength: 36 amount: description: >- The monetary amount of this expense line, represented as a decimal string. Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45"). example: '1000.00' type: string memo: description: A memo or note for this expense line. example: New office chair type: string payeeId: description: >- 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). example: 80000001-1234567890 type: string maxLength: 36 classId: description: >- The expense 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 expense lines unless overridden here, at the transaction line level. example: 80000001-1234567890 type: string maxLength: 36 salesTaxCodeId: description: >- The sales-tax code for this expense 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. example: 80000001-1234567890 type: string maxLength: 36 billingStatus: description: The billing status of this expense line. example: billable type: string enum: - billable - has_been_billed - not_billable default: billable salesRepresentativeId: description: >- The expense line's sales representative. Sales representatives can be employees, vendors, or other names in QuickBooks. example: 80000001-1234567890 type: string maxLength: 36 customFields: description: >- The custom fields for the expense line object, added as user-defined data extensions, not included in the standard QuickBooks object. minItems: 1 type: array items: type: object properties: ownerId: type: string description: >- 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. example: '0' name: type: string description: >- 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. example: Customer Rating value: type: string description: >- The value of this custom field. The maximum length depends on the field's data type. example: Premium required: - ownerId - name - value additionalProperties: false additionalProperties: false itemLines: description: >- The check's item lines, each representing the purchase of a specific item or service. minItems: 1 type: array items: type: object properties: itemId: description: >- The item associated with this item 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. example: 80000001-1234567890 type: string maxLength: 36 inventorySiteId: description: >- The site location where inventory for the item associated with this item line is stored. example: 80000001-1234567890 type: string maxLength: 36 inventorySiteLocationId: description: >- The specific location (e.g., bin or shelf) within the inventory site where the item associated with this item line is stored. example: 80000001-1234567890 type: string maxLength: 36 serialNumber: description: >- The serial number of the item associated with this item line. This is used for tracking individual units of serialized inventory items. example: SN1234567890 type: string lotNumber: description: >- The lot number of the item associated with this item line. Used for tracking groups of inventory items that are purchased or manufactured together. example: LOT2023-001 type: string expirationDate: description: >- The expiration date for the serial number or lot number of the item associated with this item line, in ISO 8601 format (YYYY-MM-DD). This is particularly relevant for perishable or time-sensitive inventory items. Note that this field is only supported on QuickBooks Desktop 2023 or later. example: '2025-12-31' type: string format: date description: description: A description of this item line. example: High-quality widget with custom engraving type: string quantity: description: >- The quantity of the item associated with this item line. This field cannot be cleared. **NOTE**: Do not use this field if the associated item is a discount item. example: 5 type: number unitOfMeasure: description: >- The unit-of-measure used for the `quantity` in this item line. Must be a valid unit within the item's available units of measure. example: Each type: string cost: description: >- The cost of this item line, represented as a decimal string. If both `quantity` and `amount` are specified but not `cost`, QuickBooks will use them to calculate `cost`. Decimal string format: up to 5 decimal places and up to 10 digits before the decimal point (for example, "123.45"). example: '1000.00' type: string amount: description: >- The monetary amount of this item line, represented as a decimal string. If both `quantity` and `cost` are specified but not `amount`, QuickBooks will use them to calculate `amount`. If `amount`, `cost`, and `quantity` are all unspecified, then QuickBooks will calculate `amount` based on a `quantity` of `1` and the suggested `cost`. This field cannot be cleared. Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45"). example: '1000.00' type: string customerId: description: >- The customer or customer-job associated with this item line. example: 80000001-1234567890 type: string maxLength: 36 classId: description: >- The item 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 item lines unless overridden here, at the transaction line level. example: 80000001-1234567890 type: string maxLength: 36 salesTaxCodeId: description: >- The sales-tax code for this item 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. example: 80000001-1234567890 type: string maxLength: 36 billingStatus: description: The billing status of this item line. example: billable type: string enum: - billable - has_been_billed - not_billable default: billable overrideItemAccountId: description: >- The account to use for this item line, overriding the default account associated with the item. example: 80000001-1234567890 type: string maxLength: 36 linkToTransactionLine: description: >- An existing transaction line that you wish to link to this item line. Note that this only links to a single transaction line item, not an entire transaction. If you want to link an entire transaction and bring in all its lines, instead use the field `linkToTransactionIds` on the parent transaction, if available. If the parent transaction is a bill or an item receipt, you can only link to purchase orders; QuickBooks does not support linking these transactions to other transaction types. Transaction lines can only be linked when creating this item line and cannot be unlinked later. **IMPORTANT**: If you use `linkToTransactionLine` on this item line, you cannot use the field `item` on this line (QuickBooks will return an error) because this field brings in all of the item information you need. You can, however, specify whatever `quantity` or `rate` that you want, or any other transaction line element other than `item`. If the parent transaction supports the `linkToTransactionIds` field, you can use both `linkToTransactionLine` (on this item line) and `linkToTransactionIds` (on its parent transaction) in the same request as long as they do NOT link to the same transaction (otherwise, QuickBooks will return an error). QuickBooks will also return an error if you attempt to link a transaction that is empty or already closed. **IMPORTANT**: By default, QuickBooks will not return any information about the linked transaction line in this endpoint's response even when this request is successful. To see the transaction line linked via this field, refetch the parent transaction and check the `linkedTransactions` response field. If fetching a list of transactions, you must also specify the parameter `includeLinkedTransactions=true` to see the `linkedTransactions` response field. type: object properties: transactionId: type: string maxLength: 36 description: >- The ID of the transaction to which to link this transaction. example: 123ABC-1234567890 transactionLineId: type: string maxLength: 36 description: >- The ID of the transaction line to which to link this transaction. example: 456DEF-1234567890 required: - transactionId - transactionLineId additionalProperties: false salesRepresentativeId: description: >- The item line's sales representative. Sales representatives can be employees, vendors, or other names in QuickBooks. example: 80000001-1234567890 type: string maxLength: 36 customFields: description: >- The custom fields for the item line object, added as user-defined data extensions, not included in the standard QuickBooks object. minItems: 1 type: array items: type: object properties: ownerId: type: string description: >- 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. example: '0' name: type: string description: >- 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. example: Customer Rating value: type: string description: >- The value of this custom field. The maximum length depends on the field's data type. example: Premium required: - ownerId - name - value additionalProperties: false additionalProperties: false itemGroupLines: description: >- The check's item group lines, each representing a predefined set of items bundled together because they are commonly purchased together or grouped for faster entry. minItems: 1 type: array items: type: object properties: itemGroupId: description: >- The item group line's item group, representing a predefined set of items bundled because they are commonly purchased together or grouped for faster entry. example: 80000001-1234567890 type: string maxLength: 36 quantity: description: >- The quantity of the item group associated with this item group line. This field cannot be cleared. **NOTE**: Do not use this field if the associated item group is a discount item group. example: 5 type: number unitOfMeasure: description: >- The unit-of-measure used for the `quantity` in this item group line. Must be a valid unit within the item's available units of measure. example: Each type: string inventorySiteId: description: >- The site location where inventory for the item group associated with this item group line is stored. example: 80000001-1234567890 type: string maxLength: 36 inventorySiteLocationId: description: >- The specific location (e.g., bin or shelf) within the inventory site where the item group associated with this item group line is stored. example: 80000001-1234567890 type: string maxLength: 36 customFields: description: >- The custom fields for the item group line object, added as user-defined data extensions, not included in the standard QuickBooks object. minItems: 1 type: array items: type: object properties: ownerId: type: string description: >- 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. example: '0' name: type: string description: >- 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. example: Customer Rating value: type: string description: >- The value of this custom field. The maximum length depends on the field's data type. example: Premium required: - ownerId - name - value additionalProperties: false required: - itemGroupId additionalProperties: false required: - bankAccountId - transactionDate additionalProperties: false responses: '200': description: Returns the newly created check. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_check' x-codeSamples: - lang: JavaScript source: |- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const check = await conductor.qbd.checks.create({ bankAccountId: '80000001-1234567890', transactionDate: '2024-10-01', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(check.id); - lang: Python source: |- import os from datetime import date from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) check = conductor.qbd.checks.create( bank_account_id="80000001-1234567890", transaction_date=date.fromisoformat("2024-10-01"), conductor_end_user_id="end_usr_1234567abcdefg", ) print(check.id) /quickbooks-desktop/checks/{id}: get: summary: Retrieve a check description: >- Retrieves a check by ID. **IMPORTANT:** If you need to fetch multiple specific checks 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. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the check to retrieve. example: 123ABC-1234567890 required: true description: The QuickBooks-assigned unique identifier of the check to retrieve. responses: '200': description: Returns the specified check. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_check' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const check = await conductor.qbd.checks.retrieve('123ABC-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(check.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) check = conductor.qbd.checks.retrieve( id="123ABC-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(check.id) post: summary: Update a check description: >- Updates a standard check so you can adjust the issuing account, payee details, memo, transaction date, or expense and item lines. This request cannot modify checks created through the bill-payment workflow. **NOTE:** If you include `expenseLines`, `itemLines`, or `itemGroupLines`, 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. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: The QuickBooks-assigned unique identifier of the check to update. example: 123ABC-1234567890 required: true description: The QuickBooks-assigned unique identifier of the check to update. requestBody: required: true content: application/json: schema: type: object properties: revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of the check 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. example: '1721172183' bankAccountId: description: >- The bank account from which the funds are being drawn for this check; e.g., Checking or Savings. This check will decrease the balance of this account. example: 80000001-1234567890 type: string maxLength: 36 payeeId: description: The person or company who will receive this check. example: 80000001-1234567890 type: string maxLength: 36 refNumber: description: >- The case-sensitive user-defined reference number for this check, 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. **IMPORTANT**: For checks, this field is the check number. Maximum length: 11 characters. example: CHECK-1234 type: string maxLength: 11 transactionDate: description: >- The date written on this check, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-01' type: string format: date memo: description: The memo that is printed on this check. example: Payment for office supplies - Invoice INV-1234 type: string address: description: The address that is printed on the check. type: object properties: line1: description: >- The first line of the address (e.g., street, PO Box, or company name). Maximum length: 41 characters. example: Conductor Labs Inc. type: string maxLength: 41 line2: description: >- The second line of the address, if needed (e.g., apartment, suite, unit, or building). Maximum length: 41 characters. example: 540 Market St. type: string maxLength: 41 line3: description: |- The third line of the address, if needed. Maximum length: 41 characters. example: Suite 100 type: string maxLength: 41 line4: description: |- The fourth line of the address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 line5: description: |- The fifth line of the address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 city: description: >- The city, district, suburb, town, or village name of the address. Maximum length: 31 characters. example: San Francisco type: string maxLength: 31 state: description: >- The state, county, province, or region name of the address. Maximum length: 21 characters. example: CA type: string maxLength: 21 postalCode: description: |- The postal code or ZIP code of the address. Maximum length: 13 characters. example: '94110' type: string maxLength: 13 country: description: The country name of the address. example: United States type: string note: description: >- A note written at the bottom of the address in the form in which it appears, such as the invoice form. example: Conductor HQ type: string additionalProperties: false isQueuedForPrint: type: boolean description: >- Indicates whether this check is included in the queue of documents for QuickBooks to print. example: true salesTaxCodeId: description: >- The sales-tax code for this check, determining whether it is taxable or non-taxable. If set, this overrides any sales-tax codes defined on the payee. This can be overridden on the check'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. example: 80000001-1234567890 type: string maxLength: 36 exchangeRate: description: >- The market exchange rate between this check'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: 1.2345 type: number applyToTransactions: description: >- Transactions to be paid by this check. This will create a link between this check and the specified transactions. **IMPORTANT**: By default, QuickBooks will not return any information about the linked transactions in this endpoint's response even when this request is successful. To see the transactions linked via this field, refetch the check and check the `linkedTransactions` response field. If fetching a list of checks, you must also specify the parameter `includeLinkedTransactions=true` to see the `linkedTransactions` response field. minItems: 1 type: array items: type: object properties: transactionId: type: string maxLength: 36 description: The ID of the transaction to be paid by this check. example: 123ABC-1234567890 amount: description: >- The monetary amount from this check to apply to the specified transaction, represented as a decimal string. Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45"). example: '1000.00' type: string required: - transactionId additionalProperties: false clearExpenseLines: description: >- When `true`, removes all existing expense lines associated with this check. To modify or add individual expense lines, use the field `expenseLines` instead. example: false type: boolean expenseLines: description: >- The check's expense lines, each representing one line in this expense. **IMPORTANT**: 1. Including this array in your update request will **REPLACE** all existing expense lines for the check with this array. To keep any existing expense lines, you must include them in this array even if they have not changed. **Any expense lines not included will be removed.** 2. To add a new expense line, include it here with the `id` field set to `-1`. 3. If you do not wish to modify any expense lines, omit this field entirely to keep them unchanged. minItems: 1 type: array items: type: object properties: id: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of an existing expense line you wish to retain or update. **IMPORTANT**: Set this field to `-1` for new expense lines you wish to add. example: 456DEF-1234567890 accountId: description: >- The expense account being debited (increased) for this expense line. The corresponding account being credited is usually a liability account (e.g., Accounts-Payable) or an asset account (e.g., Cash), depending on the transaction type. example: 80000001-1234567890 type: string maxLength: 36 amount: description: >- The monetary amount of this expense line, represented as a decimal string. Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45"). example: '1000.00' type: string memo: description: A memo or note for this expense line. example: New office chair type: string payeeId: description: >- 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). example: 80000001-1234567890 type: string maxLength: 36 classId: description: >- The expense 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 expense lines unless overridden here, at the transaction line level. example: 80000001-1234567890 type: string maxLength: 36 salesTaxCodeId: description: >- The sales-tax code for this expense 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. example: 80000001-1234567890 type: string maxLength: 36 billingStatus: description: The billing status of this expense line. example: billable type: string enum: - billable - has_been_billed - not_billable salesRepresentativeId: description: >- The expense line's sales representative. Sales representatives can be employees, vendors, or other names in QuickBooks. example: 80000001-1234567890 type: string maxLength: 36 required: - id additionalProperties: false clearItemLines: description: >- When `true`, removes all existing item lines associated with this check. To modify or add individual item lines, use the field `itemLines` instead. example: false type: boolean itemLines: description: >- The check's item lines, each representing the purchase of a specific item or service. **IMPORTANT**: 1. Including this array in your update request will **REPLACE** all existing item lines for the check with this array. To keep any existing item lines, you must include them in this array even if they have not changed. **Any item lines not included will be removed.** 2. To add a new item line, include it here with the `id` field set to `-1`. 3. If you do not wish to modify any item lines, omit this field entirely to keep them unchanged. minItems: 1 type: array items: type: object properties: id: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of an existing item line you wish to retain or update. **IMPORTANT**: Set this field to `-1` for new item lines you wish to add. example: 456DEF-1234567890 itemId: description: >- The item associated with this item 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. example: 80000001-1234567890 type: string maxLength: 36 inventorySiteId: description: >- The site location where inventory for the item associated with this item line is stored. example: 80000001-1234567890 type: string maxLength: 36 inventorySiteLocationId: description: >- The specific location (e.g., bin or shelf) within the inventory site where the item associated with this item line is stored. example: 80000001-1234567890 type: string maxLength: 36 serialNumber: description: >- The serial number of the item associated with this item line. This is used for tracking individual units of serialized inventory items. example: SN1234567890 type: string lotNumber: description: >- The lot number of the item associated with this item line. Used for tracking groups of inventory items that are purchased or manufactured together. example: LOT2023-001 type: string expirationDate: description: >- The expiration date for the serial number or lot number of the item associated with this item line, in ISO 8601 format (YYYY-MM-DD). This is particularly relevant for perishable or time-sensitive inventory items. Note that this field is only supported on QuickBooks Desktop 2023 or later. example: '2025-12-31' type: string format: date description: description: A description of this item line. example: High-quality widget with custom engraving type: string quantity: description: >- The quantity of the item associated with this item line. This field cannot be cleared. **NOTE**: Do not use this field if the associated item is a discount item. example: 5 type: number unitOfMeasure: description: >- The unit-of-measure used for the `quantity` in this item line. Must be a valid unit within the item's available units of measure. example: Each type: string overrideUnitOfMeasureSetId: description: >- Specifies an alternative unit-of-measure set when updating this item 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. example: 80000001-1234567890 type: string maxLength: 36 cost: description: >- The cost of this item line, represented as a decimal string. If both `quantity` and `amount` are specified but not `cost`, QuickBooks will use them to calculate `cost`. Decimal string format: up to 5 decimal places and up to 10 digits before the decimal point (for example, "123.45"). example: '1000.00' type: string amount: description: >- The monetary amount of this item line, represented as a decimal string. If both `quantity` and `cost` are specified but not `amount`, QuickBooks will use them to calculate `amount`. If `amount`, `cost`, and `quantity` are all unspecified, then QuickBooks will calculate `amount` based on a `quantity` of `1` and the suggested `cost`. This field cannot be cleared. Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45"). example: '1000.00' type: string customerId: description: >- The customer or customer-job associated with this item line. example: 80000001-1234567890 type: string maxLength: 36 classId: description: >- The item 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 item lines unless overridden here, at the transaction line level. example: 80000001-1234567890 type: string maxLength: 36 salesTaxCodeId: description: >- The sales-tax code for this item 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. example: 80000001-1234567890 type: string maxLength: 36 billingStatus: description: The billing status of this item line. example: billable type: string enum: - billable - has_been_billed - not_billable overrideItemAccountId: description: >- The account to use for this item line, overriding the default account associated with the item. example: 80000001-1234567890 type: string maxLength: 36 salesRepresentativeId: description: >- The item line's sales representative. Sales representatives can be employees, vendors, or other names in QuickBooks. example: 80000001-1234567890 type: string maxLength: 36 required: - id additionalProperties: false itemGroupLines: description: >- The check's item group lines, each representing a predefined set of items bundled together because they are commonly purchased together or grouped for faster entry. **IMPORTANT**: 1. Including this array in your update request will **REPLACE** all existing item group lines for the check with this array. To keep any existing item group lines, you must include them in this array even if they have not changed. **Any item group lines not included will be removed.** 2. To add a new item group line, include it here with the `id` field set to `-1`. 3. If you do not wish to modify any item group lines, omit this field entirely to keep them unchanged. minItems: 1 type: array items: type: object properties: id: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of an existing item group line you wish to retain or update. **IMPORTANT**: Set this field to `-1` for new item group lines you wish to add. example: 456DEF-1234567890 itemGroupId: description: >- The item group line's item group, representing a predefined set of items bundled because they are commonly purchased together or grouped for faster entry. example: 80000001-1234567890 type: string maxLength: 36 quantity: description: >- The quantity of the item group associated with this item group line. This field cannot be cleared. **NOTE**: Do not use this field if the associated item group is a discount item group. example: 5 type: number unitOfMeasure: description: >- The unit-of-measure used for the `quantity` in this item group line. Must be a valid unit within the item's available units of measure. example: Each type: string overrideUnitOfMeasureSetId: description: >- Specifies an alternative unit-of-measure set when updating this item group 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. example: 80000001-1234567890 type: string maxLength: 36 itemLines: description: >- The item group line's item lines, each representing the purchase of a specific item or service. **IMPORTANT**: 1. Including this array in your update request will **REPLACE** all existing item lines for the item group line with this array. To keep any existing item lines, you must include them in this array even if they have not changed. **Any item lines not included will be removed.** 2. To add a new item line, include it here with the `id` field set to `-1`. 3. If you do not wish to modify any item lines, omit this field entirely to keep them unchanged. minItems: 1 type: array items: type: object properties: id: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of an existing item line you wish to retain or update. **IMPORTANT**: Set this field to `-1` for new item lines you wish to add. example: 456DEF-1234567890 itemId: description: >- The item associated with this item 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. example: 80000001-1234567890 type: string maxLength: 36 inventorySiteId: description: >- The site location where inventory for the item associated with this item line is stored. example: 80000001-1234567890 type: string maxLength: 36 inventorySiteLocationId: description: >- The specific location (e.g., bin or shelf) within the inventory site where the item associated with this item line is stored. example: 80000001-1234567890 type: string maxLength: 36 serialNumber: description: >- The serial number of the item associated with this item line. This is used for tracking individual units of serialized inventory items. example: SN1234567890 type: string lotNumber: description: >- The lot number of the item associated with this item line. Used for tracking groups of inventory items that are purchased or manufactured together. example: LOT2023-001 type: string expirationDate: description: >- The expiration date for the serial number or lot number of the item associated with this item line, in ISO 8601 format (YYYY-MM-DD). This is particularly relevant for perishable or time-sensitive inventory items. Note that this field is only supported on QuickBooks Desktop 2023 or later. example: '2025-12-31' type: string format: date description: description: A description of this item line. example: High-quality widget with custom engraving type: string quantity: description: >- The quantity of the item associated with this item line. This field cannot be cleared. **NOTE**: Do not use this field if the associated item is a discount item. example: 5 type: number unitOfMeasure: description: >- The unit-of-measure used for the `quantity` in this item line. Must be a valid unit within the item's available units of measure. example: Each type: string overrideUnitOfMeasureSetId: description: >- Specifies an alternative unit-of-measure set when updating this item 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. example: 80000001-1234567890 type: string maxLength: 36 cost: description: >- The cost of this item line, represented as a decimal string. If both `quantity` and `amount` are specified but not `cost`, QuickBooks will use them to calculate `cost`. Decimal string format: up to 5 decimal places and up to 10 digits before the decimal point (for example, "123.45"). example: '1000.00' type: string amount: description: >- The monetary amount of this item line, represented as a decimal string. If both `quantity` and `cost` are specified but not `amount`, QuickBooks will use them to calculate `amount`. If `amount`, `cost`, and `quantity` are all unspecified, then QuickBooks will calculate `amount` based on a `quantity` of `1` and the suggested `cost`. This field cannot be cleared. Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45"). example: '1000.00' type: string customerId: description: >- The customer or customer-job associated with this item line. example: 80000001-1234567890 type: string maxLength: 36 classId: description: >- The item 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 item lines unless overridden here, at the transaction line level. example: 80000001-1234567890 type: string maxLength: 36 salesTaxCodeId: description: >- The sales-tax code for this item 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. example: 80000001-1234567890 type: string maxLength: 36 billingStatus: description: The billing status of this item line. example: billable type: string enum: - billable - has_been_billed - not_billable overrideItemAccountId: description: >- The account to use for this item line, overriding the default account associated with the item. example: 80000001-1234567890 type: string maxLength: 36 salesRepresentativeId: description: >- The item line's sales representative. Sales representatives can be employees, vendors, or other names in QuickBooks. example: 80000001-1234567890 type: string maxLength: 36 required: - id additionalProperties: false required: - id additionalProperties: false required: - revisionNumber additionalProperties: false responses: '200': description: Returns the updated check. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_check' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const check = await conductor.qbd.checks.update('123ABC-1234567890', { revisionNumber: '1721172183', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(check.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) check = conductor.qbd.checks.update( id="123ABC-1234567890", revision_number="1721172183", conductor_end_user_id="end_usr_1234567abcdefg", ) print(check.id) delete: summary: Delete a check description: >- Permanently deletes a check. The deletion will fail if the check is currently in use or has any linked transactions that are in use. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: The QuickBooks-assigned unique identifier of the check to delete. example: 123ABC-1234567890 required: true description: The QuickBooks-assigned unique identifier of the check to delete. responses: '200': description: >- Returns a confirmation of the deletion with the ID of the deleted check. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: id: type: string description: >- The QuickBooks-assigned unique identifier of the deleted check. example: 123ABC-1234567890 objectType: description: The type of object. This value is always `"qbd_check"`. example: qbd_check type: string const: qbd_check refNumber: anyOf: - type: string - type: 'null' description: >- The case-sensitive user-defined reference number of the deleted check. example: CHECK-1234 deleted: type: boolean description: Indicates whether the check was deleted. example: true required: - id - objectType - refNumber - deleted additionalProperties: false x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const check = await conductor.qbd.checks.delete('123ABC-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(check.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) check = conductor.qbd.checks.delete( id="123ABC-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(check.id) /quickbooks-desktop/checks/{id}/void: post: summary: Void a check description: >- Voids a check by setting its amount to zero while keeping a record of it in QuickBooks. The void will fail if the check is currently in use or has any linked transactions that are in use. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: The QuickBooks-assigned unique identifier of the check to void. example: 123ABC-1234567890 required: true description: The QuickBooks-assigned unique identifier of the check to void. responses: '200': description: Returns a confirmation of the void with the ID of the voided check. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: id: type: string description: >- The QuickBooks-assigned unique identifier of the voided check. example: 123ABC-1234567890 objectType: description: The type of object. This value is always `"qbd_check"`. example: qbd_check type: string const: qbd_check createdAt: anyOf: - type: string - type: 'null' description: >- The date and time when this check 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. example: 2025-01-01T12:34:56.000Z updatedAt: anyOf: - type: string - type: 'null' description: >- The date and time when this check 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. example: 2025-02-01T12:34:56.000Z refNumber: anyOf: - type: string - type: 'null' description: >- The case-sensitive user-defined reference number of the voided check. example: CHECK-1234 voided: type: boolean description: Indicates whether the check was voided. example: true required: - id - objectType - createdAt - updatedAt - refNumber - voided additionalProperties: false x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const response = await conductor.qbd.checks.void('123ABC-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(response.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) response = conductor.qbd.checks.void( id="123ABC-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(response.id) /quickbooks-desktop/classes: get: summary: List all classes description: >- Returns a list of classes. **NOTE:** QuickBooks Desktop does not support pagination for classes; hence, there is no `cursor` parameter. Users typically have few classes. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: query name: ids schema: description: >- Filter for specific classes 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: - 80000001-1234567890 type: array items: type: string description: >- Filter for specific classes 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. - in: query name: fullNames schema: description: >- Filter for specific classes by their full-name(s), case-insensitive. Like `id`, `fullName` is a unique identifier for a class, formed by by combining the names of its parent objects with its own `name`, separated by colons. For example, if a class is under "Department" and has the `name` "Marketing", its `fullName` would be "Department:Marketing". **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: - Department:Marketing type: array items: type: string description: >- Filter for specific classes by their full-name(s), case-insensitive. Like `id`, `fullName` is a unique identifier for a class, formed by by combining the names of its parent objects with its own `name`, separated by colons. For example, if a class is under "Department" and has the `name` "Marketing", its `fullName` would be "Department:Marketing". **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. - in: query name: limit schema: description: >- The maximum number of objects to return. **IMPORTANT**: QuickBooks Desktop does not support cursor-based pagination for classes. 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 classes without limit, unlike paginated endpoints which default to 150 records. This is acceptable because classes typically have low record counts. example: 10 type: integer minimum: 1 description: >- The maximum number of objects to return. **IMPORTANT**: QuickBooks Desktop does not support cursor-based pagination for classes. 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 classes without limit, unlike paginated endpoints which default to 150 records. This is acceptable because classes typically have low record counts. - in: query name: status schema: description: Filter for classes that are active, inactive, or both. example: active type: string enum: - active - all - inactive default: active description: Filter for classes that are active, inactive, or both. - in: query name: updatedAfter schema: description: >- Filter for classes 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. example: 2025-01-01T12:34:56.000Z type: string description: >- Filter for classes 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. - in: query name: updatedBefore schema: description: >- Filter for classes 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. example: 2025-02-01T12:34:56.000Z type: string description: >- Filter for classes 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. - in: query name: nameContains schema: description: >- Filter for classes whose `name` contains this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameStartsWith` or `nameEndsWith`. example: ABC type: string description: >- Filter for classes whose `name` contains this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameStartsWith` or `nameEndsWith`. - in: query name: nameStartsWith schema: description: >- Filter for classes whose `name` starts with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameEndsWith`. example: ABC type: string description: >- Filter for classes whose `name` starts with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameEndsWith`. - in: query name: nameEndsWith schema: description: >- Filter for classes whose `name` ends with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameStartsWith`. example: ABC type: string description: >- Filter for classes whose `name` ends with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameStartsWith`. - in: query name: nameFrom schema: description: >- Filter for classes whose `name` is alphabetically greater than or equal to this value. example: A type: string description: >- Filter for classes whose `name` is alphabetically greater than or equal to this value. - in: query name: nameTo schema: description: >- Filter for classes whose `name` is alphabetically less than or equal to this value. example: Z type: string description: >- Filter for classes whose `name` is alphabetically less than or equal to this value. responses: '200': description: Returns a list of classes. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: objectType: description: The type of object. This value is always `"list"`. example: list type: string const: list url: type: string description: The endpoint URL where this list can be accessed. example: /v1/quickbooks-desktop/classes data: type: array items: $ref: '#/components/schemas/qbd_class' description: The array of classes. required: - objectType - url - data additionalProperties: false x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const classes = await conductor.qbd.classes.list({ conductorEndUserId: 'end_usr_1234567abcdefg' }); console.log(classes.data); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) classes = conductor.qbd.classes.list( conductor_end_user_id="end_usr_1234567abcdefg", ) print(classes.data) post: summary: Create a class description: Creates a new class. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. requestBody: required: true content: application/json: schema: type: object properties: name: type: string maxLength: 31 description: >- The case-insensitive name of this class. Not guaranteed to be unique because it does not include the names of its hierarchical parent objects like `fullName` does. For example, two classes could both have the `name` "Marketing", but they could have unique `fullName` values, such as "Department:Marketing" and "Internal:Marketing". Maximum length: 31 characters. example: Marketing isActive: description: >- Indicates whether this class is active. Inactive objects are typically hidden from views and reports in QuickBooks. Defaults to `true`. example: true default: true type: boolean parentId: description: >- The parent class one level above this one in the hierarchy. For example, if this class has a `fullName` of "Department:Marketing", its parent has a `fullName` of "Department". If this class is at the top level, this field will be `null`. example: 80000001-1234567890 type: string maxLength: 36 required: - name additionalProperties: false responses: '200': description: Returns the newly created class. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_class' x-codeSamples: - lang: JavaScript source: |- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const _class = await conductor.qbd.classes.create({ name: 'Marketing', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(_class.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) class_ = conductor.qbd.classes.create( name="Marketing", conductor_end_user_id="end_usr_1234567abcdefg", ) print(class_.id) /quickbooks-desktop/classes/{id}: get: summary: Retrieve a class description: >- Retrieves a class by ID. **IMPORTANT:** If you need to fetch multiple specific classes 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. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the class to retrieve. example: 80000001-1234567890 required: true description: The QuickBooks-assigned unique identifier of the class to retrieve. responses: '200': description: Returns the specified class. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_class' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const _class = await conductor.qbd.classes.retrieve('80000001-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(_class.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) class_ = conductor.qbd.classes.retrieve( id="80000001-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(class_.id) post: summary: Update a class description: Updates an existing class. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: The QuickBooks-assigned unique identifier of the class to update. example: 80000001-1234567890 required: true description: The QuickBooks-assigned unique identifier of the class to update. requestBody: required: true content: application/json: schema: type: object properties: revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of the class 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. example: '1721172183' name: description: >- The case-insensitive name of this class. Not guaranteed to be unique because it does not include the names of its hierarchical parent objects like `fullName` does. For example, two classes could both have the `name` "Marketing", but they could have unique `fullName` values, such as "Department:Marketing" and "Internal:Marketing". Maximum length: 31 characters. example: Marketing type: string maxLength: 31 isActive: description: >- Indicates whether this class is active. Inactive objects are typically hidden from views and reports in QuickBooks. Defaults to `true`. example: true type: boolean parentId: description: >- The parent class one level above this one in the hierarchy. For example, if this class has a `fullName` of "Department:Marketing", its parent has a `fullName` of "Department". If this class is at the top level, this field will be `null`. example: 80000001-1234567890 type: string maxLength: 36 required: - revisionNumber additionalProperties: false responses: '200': description: Returns the updated class. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_class' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const _class = await conductor.qbd.classes.update('80000001-1234567890', { revisionNumber: '1721172183', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(_class.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) class_ = conductor.qbd.classes.update( id="80000001-1234567890", revision_number="1721172183", conductor_end_user_id="end_usr_1234567abcdefg", ) print(class_.id) /quickbooks-desktop/company: get: summary: Retrieve company file info description: >- Returns detailed information about the connected QuickBooks company file, including company address, legal name, preferences, and subscribed services. Note that company information cannot be modified through the API, only through the QuickBooks Desktop user interface. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. responses: '200': description: Returns an object with the company file's information. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_company' x-codeSamples: - lang: JavaScript source: |- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const company = await conductor.qbd.company.retrieve({ conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(company.accountantCopy); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) company = conductor.qbd.company.retrieve( conductor_end_user_id="end_usr_1234567abcdefg", ) print(company.accountant_copy) /quickbooks-desktop/credit-card-charges: get: summary: List all credit card charges description: >- Returns a list of credit card charges. Use the `cursor` parameter to paginate through the results. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: query name: ids schema: description: >- Filter for specific credit card charges 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 type: array items: type: string description: >- Filter for specific credit card charges 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. - in: query name: refNumbers schema: description: >- Filter for specific credit card charges 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: - CREDIT CARD CHARGE-1234 type: array items: type: string description: >- Filter for specific credit card charges 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. - in: query name: limit schema: default: 150 description: >- 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. example: 150 type: integer minimum: 1 maximum: 150 description: >- 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. - in: query name: cursor schema: description: >- 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 type: string description: >- 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. - in: query name: updatedAfter schema: description: >- Filter for credit card charges 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. example: 2025-01-01T12:34:56.000Z type: string description: >- Filter for credit card charges 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. - in: query name: updatedBefore schema: description: >- Filter for credit card charges 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. example: 2025-02-01T12:34:56.000Z type: string description: >- Filter for credit card charges 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. - in: query name: transactionDateFrom schema: description: >- Filter for credit card charges 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-01` → `2025-01-01T00:00:00`). example: '2025-01-01' type: string format: date description: >- Filter for credit card charges 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-01` → `2025-01-01T00:00:00`). - in: query name: transactionDateTo schema: description: >- Filter for credit card charges 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-01` → `2025-01-01T23:59:59`). example: '2025-02-01' type: string format: date description: >- Filter for credit card charges 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-01` → `2025-01-01T23:59:59`). - in: query name: payeeIds schema: description: >- Filter for credit card charges paid to these payees. These are the vendors or companies from whom merchandise or services were purchased for these credit card charges. example: - 80000001-1234567890 type: array items: type: string description: >- Filter for credit card charges paid to these payees. These are the vendors or companies from whom merchandise or services were purchased for these credit card charges. - in: query name: accountIds schema: description: Filter for credit card charges associated with these accounts. example: - 80000001-1234567890 type: array items: type: string description: Filter for credit card charges associated with these accounts. - in: query name: refNumberContains schema: description: >- Filter for credit card charges whose `refNumber` contains this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberStartsWith` or `refNumberEndsWith`. example: CARD-1234 type: string description: >- Filter for credit card charges whose `refNumber` contains this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberStartsWith` or `refNumberEndsWith`. - in: query name: refNumberStartsWith schema: description: >- Filter for credit card charges whose `refNumber` starts with this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberContains` or `refNumberEndsWith`. example: CARD type: string description: >- Filter for credit card charges whose `refNumber` starts with this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberContains` or `refNumberEndsWith`. - in: query name: refNumberEndsWith schema: description: >- Filter for credit card charges whose `refNumber` ends with this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberContains` or `refNumberStartsWith`. example: '1234' type: string description: >- Filter for credit card charges whose `refNumber` ends with this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberContains` or `refNumberStartsWith`. - in: query name: refNumberFrom schema: description: >- Filter for credit card charges 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: CARD-0001 type: string description: >- Filter for credit card charges 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. - in: query name: refNumberTo schema: description: >- Filter for credit card charges 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: CARD-9999 type: string description: >- Filter for credit card charges 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. - in: query name: currencyIds schema: description: Filter for credit card charges in these currencies. example: - 80000001-1234567890 type: array items: type: string description: Filter for credit card charges in these currencies. - in: query name: includeLineItems schema: description: Whether to include line items in the response. Defaults to `true`. example: true type: boolean default: true description: Whether to include line items in the response. Defaults to `true`. responses: '200': description: Returns a list of credit card charges. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: objectType: description: The type of object. This value is always `"list"`. example: list type: string const: list url: type: string description: The endpoint URL where this list can be accessed. example: /v1/quickbooks-desktop/credit-card-charges data: type: array items: $ref: '#/components/schemas/qbd_credit_card_charge' description: The array of credit card charges. nextCursor: anyOf: - type: string - type: 'null' description: >- The `nextCursor` is a pagination token returned in the response when you use the `limit` parameter in your request. To retrieve subsequent pages of results, include this token as the value of the `cursor` request parameter in your following API calls. **NOTE**: The `nextCursor` value remains constant throughout the pagination process for a specific list instance; continue to use the same `nextCursor` token in each request to fetch additional pages. example: 12345678-abcd-abcd-example-1234567890ab remainingCount: anyOf: - type: number - type: 'null' description: The number of objects remaining to be fetched. example: 10 hasMore: type: boolean description: Indicates whether there are more objects to be fetched. required: - objectType - url - data - nextCursor - remainingCount - hasMore additionalProperties: false x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); // Automatically fetches more pages as needed. for await (const creditCardCharge of conductor.qbd.creditCardCharges.list({ conductorEndUserId: 'end_usr_1234567abcdefg', })) { console.log(creditCardCharge.id); } - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) page = conductor.qbd.credit_card_charges.list( conductor_end_user_id="end_usr_1234567abcdefg", ) page = page.data[0] print(page.id) post: summary: Create a credit card charge description: Creates a new credit card charge for the specified account. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. requestBody: required: true content: application/json: schema: type: object properties: accountId: description: >- The bank or credit card account to which money is owed for this credit card charge. example: 80000001-1234567890 type: string maxLength: 36 payeeId: description: >- The vendor or company from whom merchandise or services were purchased for this credit card charge. example: 80000001-1234567890 type: string maxLength: 36 transactionDate: type: string format: date description: >- The date of this credit card charge, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-01' refNumber: description: >- The case-sensitive user-defined reference number for this credit card charge, 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. When left blank in this create request, this field will be left blank in QuickBooks (i.e., it does *not* auto-increment). Maximum length: 11 characters. example: CARD-1234 type: string maxLength: 11 memo: description: A memo or note for this credit card charge. example: Office supplies for Q3 marketing campaign type: string salesTaxCodeId: description: >- The sales-tax code for this credit card charge, determining whether it is taxable or non-taxable. If set, this overrides any sales-tax codes defined on the payee. This can be overridden on the credit card charge'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. example: 80000001-1234567890 type: string maxLength: 36 exchangeRate: description: >- The market exchange rate between this credit card charge'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: 1.2345 type: number externalId: type: string format: uuid description: >- 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. **IMPORTANT**: This field must be formatted as a valid GUID; otherwise, QuickBooks will return an error. example: 12345678-abcd-1234-abcd-1234567890ab expenseLines: description: >- The credit card charge's expense lines, each representing one line in this expense. minItems: 1 type: array items: type: object properties: accountId: description: >- The expense account being debited (increased) for this expense line. The corresponding account being credited is usually a liability account (e.g., Accounts-Payable) or an asset account (e.g., Cash), depending on the transaction type. example: 80000001-1234567890 type: string maxLength: 36 amount: description: >- The monetary amount of this expense line, represented as a decimal string. Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45"). example: '1000.00' type: string memo: description: A memo or note for this expense line. example: New office chair type: string payeeId: description: >- 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). example: 80000001-1234567890 type: string maxLength: 36 classId: description: >- The expense 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 expense lines unless overridden here, at the transaction line level. example: 80000001-1234567890 type: string maxLength: 36 salesTaxCodeId: description: >- The sales-tax code for this expense 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. example: 80000001-1234567890 type: string maxLength: 36 billingStatus: description: The billing status of this expense line. example: billable type: string enum: - billable - has_been_billed - not_billable default: billable salesRepresentativeId: description: >- The expense line's sales representative. Sales representatives can be employees, vendors, or other names in QuickBooks. example: 80000001-1234567890 type: string maxLength: 36 customFields: description: >- The custom fields for the expense line object, added as user-defined data extensions, not included in the standard QuickBooks object. minItems: 1 type: array items: type: object properties: ownerId: type: string description: >- 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. example: '0' name: type: string description: >- 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. example: Customer Rating value: type: string description: >- The value of this custom field. The maximum length depends on the field's data type. example: Premium required: - ownerId - name - value additionalProperties: false additionalProperties: false itemLines: description: >- The credit card charge's item lines, each representing the purchase of a specific item or service. minItems: 1 type: array items: type: object properties: itemId: description: >- The item associated with this item 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. example: 80000001-1234567890 type: string maxLength: 36 inventorySiteId: description: >- The site location where inventory for the item associated with this item line is stored. example: 80000001-1234567890 type: string maxLength: 36 inventorySiteLocationId: description: >- The specific location (e.g., bin or shelf) within the inventory site where the item associated with this item line is stored. example: 80000001-1234567890 type: string maxLength: 36 serialNumber: description: >- The serial number of the item associated with this item line. This is used for tracking individual units of serialized inventory items. example: SN1234567890 type: string lotNumber: description: >- The lot number of the item associated with this item line. Used for tracking groups of inventory items that are purchased or manufactured together. example: LOT2023-001 type: string expirationDate: description: >- The expiration date for the serial number or lot number of the item associated with this item line, in ISO 8601 format (YYYY-MM-DD). This is particularly relevant for perishable or time-sensitive inventory items. Note that this field is only supported on QuickBooks Desktop 2023 or later. example: '2025-12-31' type: string format: date description: description: A description of this item line. example: High-quality widget with custom engraving type: string quantity: description: >- The quantity of the item associated with this item line. This field cannot be cleared. **NOTE**: Do not use this field if the associated item is a discount item. example: 5 type: number unitOfMeasure: description: >- The unit-of-measure used for the `quantity` in this item line. Must be a valid unit within the item's available units of measure. example: Each type: string cost: description: >- The cost of this item line, represented as a decimal string. If both `quantity` and `amount` are specified but not `cost`, QuickBooks will use them to calculate `cost`. Decimal string format: up to 5 decimal places and up to 10 digits before the decimal point (for example, "123.45"). example: '1000.00' type: string amount: description: >- The monetary amount of this item line, represented as a decimal string. If both `quantity` and `cost` are specified but not `amount`, QuickBooks will use them to calculate `amount`. If `amount`, `cost`, and `quantity` are all unspecified, then QuickBooks will calculate `amount` based on a `quantity` of `1` and the suggested `cost`. This field cannot be cleared. Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45"). example: '1000.00' type: string customerId: description: >- The customer or customer-job associated with this item line. example: 80000001-1234567890 type: string maxLength: 36 classId: description: >- The item 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 item lines unless overridden here, at the transaction line level. example: 80000001-1234567890 type: string maxLength: 36 salesTaxCodeId: description: >- The sales-tax code for this item 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. example: 80000001-1234567890 type: string maxLength: 36 billingStatus: description: The billing status of this item line. example: billable type: string enum: - billable - has_been_billed - not_billable default: billable overrideItemAccountId: description: >- The account to use for this item line, overriding the default account associated with the item. example: 80000001-1234567890 type: string maxLength: 36 linkToTransactionLine: description: >- An existing transaction line that you wish to link to this item line. Note that this only links to a single transaction line item, not an entire transaction. If you want to link an entire transaction and bring in all its lines, instead use the field `linkToTransactionIds` on the parent transaction, if available. If the parent transaction is a bill or an item receipt, you can only link to purchase orders; QuickBooks does not support linking these transactions to other transaction types. Transaction lines can only be linked when creating this item line and cannot be unlinked later. **IMPORTANT**: If you use `linkToTransactionLine` on this item line, you cannot use the field `item` on this line (QuickBooks will return an error) because this field brings in all of the item information you need. You can, however, specify whatever `quantity` or `rate` that you want, or any other transaction line element other than `item`. If the parent transaction supports the `linkToTransactionIds` field, you can use both `linkToTransactionLine` (on this item line) and `linkToTransactionIds` (on its parent transaction) in the same request as long as they do NOT link to the same transaction (otherwise, QuickBooks will return an error). QuickBooks will also return an error if you attempt to link a transaction that is empty or already closed. **IMPORTANT**: By default, QuickBooks will not return any information about the linked transaction line in this endpoint's response even when this request is successful. To see the transaction line linked via this field, refetch the parent transaction and check the `linkedTransactions` response field. If fetching a list of transactions, you must also specify the parameter `includeLinkedTransactions=true` to see the `linkedTransactions` response field. type: object properties: transactionId: type: string maxLength: 36 description: >- The ID of the transaction to which to link this transaction. example: 123ABC-1234567890 transactionLineId: type: string maxLength: 36 description: >- The ID of the transaction line to which to link this transaction. example: 456DEF-1234567890 required: - transactionId - transactionLineId additionalProperties: false salesRepresentativeId: description: >- The item line's sales representative. Sales representatives can be employees, vendors, or other names in QuickBooks. example: 80000001-1234567890 type: string maxLength: 36 customFields: description: >- The custom fields for the item line object, added as user-defined data extensions, not included in the standard QuickBooks object. minItems: 1 type: array items: type: object properties: ownerId: type: string description: >- 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. example: '0' name: type: string description: >- 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. example: Customer Rating value: type: string description: >- The value of this custom field. The maximum length depends on the field's data type. example: Premium required: - ownerId - name - value additionalProperties: false additionalProperties: false itemGroupLines: description: >- The credit card charge's item group lines, each representing a predefined set of items bundled together because they are commonly purchased together or grouped for faster entry. minItems: 1 type: array items: type: object properties: itemGroupId: description: >- The item group line's item group, representing a predefined set of items bundled because they are commonly purchased together or grouped for faster entry. example: 80000001-1234567890 type: string maxLength: 36 quantity: description: >- The quantity of the item group associated with this item group line. This field cannot be cleared. **NOTE**: Do not use this field if the associated item group is a discount item group. example: 5 type: number unitOfMeasure: description: >- The unit-of-measure used for the `quantity` in this item group line. Must be a valid unit within the item's available units of measure. example: Each type: string inventorySiteId: description: >- The site location where inventory for the item group associated with this item group line is stored. example: 80000001-1234567890 type: string maxLength: 36 inventorySiteLocationId: description: >- The specific location (e.g., bin or shelf) within the inventory site where the item group associated with this item group line is stored. example: 80000001-1234567890 type: string maxLength: 36 customFields: description: >- The custom fields for the item group line object, added as user-defined data extensions, not included in the standard QuickBooks object. minItems: 1 type: array items: type: object properties: ownerId: type: string description: >- 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. example: '0' name: type: string description: >- 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. example: Customer Rating value: type: string description: >- The value of this custom field. The maximum length depends on the field's data type. example: Premium required: - ownerId - name - value additionalProperties: false required: - itemGroupId additionalProperties: false required: - accountId - transactionDate additionalProperties: false responses: '200': description: Returns the newly created credit card charge. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_credit_card_charge' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const creditCardCharge = await conductor.qbd.creditCardCharges.create({ accountId: '80000001-1234567890', transactionDate: '2024-10-01', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(creditCardCharge.id); - lang: Python source: |- import os from datetime import date from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) credit_card_charge = conductor.qbd.credit_card_charges.create( account_id="80000001-1234567890", transaction_date=date.fromisoformat("2024-10-01"), conductor_end_user_id="end_usr_1234567abcdefg", ) print(credit_card_charge.id) /quickbooks-desktop/credit-card-charges/{id}: get: summary: Retrieve a credit card charge description: >- Retrieves a credit card charge by ID. **IMPORTANT:** If you need to fetch multiple specific credit card charges 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. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the credit card charge to retrieve. example: 123ABC-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the credit card charge to retrieve. responses: '200': description: Returns the specified credit card charge. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_credit_card_charge' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const creditCardCharge = await conductor.qbd.creditCardCharges.retrieve('123ABC-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(creditCardCharge.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) credit_card_charge = conductor.qbd.credit_card_charges.retrieve( id="123ABC-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(credit_card_charge.id) post: summary: Update a credit card charge description: >- Updates an existing credit card charge so you can adjust the credit card account, payee, memo, transaction date, and expense or item lines. The total is recalculated from the line details. **NOTE:** If you include `expenseLines`, `itemLines`, or `itemGroupLines`, 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. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the credit card charge to update. example: 123ABC-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the credit card charge to update. requestBody: required: true content: application/json: schema: type: object properties: revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of the credit card charge 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. example: '1721172183' accountId: description: >- The bank or credit card account to which money is owed for this credit card charge. example: 80000001-1234567890 type: string maxLength: 36 payeeId: description: >- The vendor or company from whom merchandise or services were purchased for this credit card charge. example: 80000001-1234567890 type: string maxLength: 36 transactionDate: description: >- The date of this credit card charge, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-01' type: string format: date refNumber: description: >- The case-sensitive user-defined reference number for this credit card charge, 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. example: CARD-1234 type: string maxLength: 11 memo: description: A memo or note for this credit card charge. example: Office supplies for Q3 marketing campaign type: string salesTaxCodeId: description: >- The sales-tax code for this credit card charge, determining whether it is taxable or non-taxable. If set, this overrides any sales-tax codes defined on the payee. This can be overridden on the credit card charge'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. example: 80000001-1234567890 type: string maxLength: 36 exchangeRate: description: >- The market exchange rate between this credit card charge'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: 1.2345 type: number clearExpenseLines: description: >- When `true`, removes all existing expense lines associated with this credit card charge. To modify or add individual expense lines, use the field `expenseLines` instead. example: false type: boolean expenseLines: description: >- The credit card charge's expense lines, each representing one line in this expense. **IMPORTANT**: 1. Including this array in your update request will **REPLACE** all existing expense lines for the credit card charge with this array. To keep any existing expense lines, you must include them in this array even if they have not changed. **Any expense lines not included will be removed.** 2. To add a new expense line, include it here with the `id` field set to `-1`. 3. If you do not wish to modify any expense lines, omit this field entirely to keep them unchanged. minItems: 1 type: array items: type: object properties: id: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of an existing expense line you wish to retain or update. **IMPORTANT**: Set this field to `-1` for new expense lines you wish to add. example: 456DEF-1234567890 accountId: description: >- The expense account being debited (increased) for this expense line. The corresponding account being credited is usually a liability account (e.g., Accounts-Payable) or an asset account (e.g., Cash), depending on the transaction type. example: 80000001-1234567890 type: string maxLength: 36 amount: description: >- The monetary amount of this expense line, represented as a decimal string. Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45"). example: '1000.00' type: string memo: description: A memo or note for this expense line. example: New office chair type: string payeeId: description: >- 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). example: 80000001-1234567890 type: string maxLength: 36 classId: description: >- The expense 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 expense lines unless overridden here, at the transaction line level. example: 80000001-1234567890 type: string maxLength: 36 salesTaxCodeId: description: >- The sales-tax code for this expense 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. example: 80000001-1234567890 type: string maxLength: 36 billingStatus: description: The billing status of this expense line. example: billable type: string enum: - billable - has_been_billed - not_billable salesRepresentativeId: description: >- The expense line's sales representative. Sales representatives can be employees, vendors, or other names in QuickBooks. example: 80000001-1234567890 type: string maxLength: 36 required: - id additionalProperties: false clearItemLines: description: >- When `true`, removes all existing item lines associated with this credit card charge. To modify or add individual item lines, use the field `itemLines` instead. example: false type: boolean itemLines: description: >- The credit card charge's item lines, each representing the purchase of a specific item or service. **IMPORTANT**: 1. Including this array in your update request will **REPLACE** all existing item lines for the credit card charge with this array. To keep any existing item lines, you must include them in this array even if they have not changed. **Any item lines not included will be removed.** 2. To add a new item line, include it here with the `id` field set to `-1`. 3. If you do not wish to modify any item lines, omit this field entirely to keep them unchanged. minItems: 1 type: array items: type: object properties: id: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of an existing item line you wish to retain or update. **IMPORTANT**: Set this field to `-1` for new item lines you wish to add. example: 456DEF-1234567890 itemId: description: >- The item associated with this item 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. example: 80000001-1234567890 type: string maxLength: 36 inventorySiteId: description: >- The site location where inventory for the item associated with this item line is stored. example: 80000001-1234567890 type: string maxLength: 36 inventorySiteLocationId: description: >- The specific location (e.g., bin or shelf) within the inventory site where the item associated with this item line is stored. example: 80000001-1234567890 type: string maxLength: 36 serialNumber: description: >- The serial number of the item associated with this item line. This is used for tracking individual units of serialized inventory items. example: SN1234567890 type: string lotNumber: description: >- The lot number of the item associated with this item line. Used for tracking groups of inventory items that are purchased or manufactured together. example: LOT2023-001 type: string expirationDate: description: >- The expiration date for the serial number or lot number of the item associated with this item line, in ISO 8601 format (YYYY-MM-DD). This is particularly relevant for perishable or time-sensitive inventory items. Note that this field is only supported on QuickBooks Desktop 2023 or later. example: '2025-12-31' type: string format: date description: description: A description of this item line. example: High-quality widget with custom engraving type: string quantity: description: >- The quantity of the item associated with this item line. This field cannot be cleared. **NOTE**: Do not use this field if the associated item is a discount item. example: 5 type: number unitOfMeasure: description: >- The unit-of-measure used for the `quantity` in this item line. Must be a valid unit within the item's available units of measure. example: Each type: string overrideUnitOfMeasureSetId: description: >- Specifies an alternative unit-of-measure set when updating this item 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. example: 80000001-1234567890 type: string maxLength: 36 cost: description: >- The cost of this item line, represented as a decimal string. If both `quantity` and `amount` are specified but not `cost`, QuickBooks will use them to calculate `cost`. Decimal string format: up to 5 decimal places and up to 10 digits before the decimal point (for example, "123.45"). example: '1000.00' type: string amount: description: >- The monetary amount of this item line, represented as a decimal string. If both `quantity` and `cost` are specified but not `amount`, QuickBooks will use them to calculate `amount`. If `amount`, `cost`, and `quantity` are all unspecified, then QuickBooks will calculate `amount` based on a `quantity` of `1` and the suggested `cost`. This field cannot be cleared. Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45"). example: '1000.00' type: string customerId: description: >- The customer or customer-job associated with this item line. example: 80000001-1234567890 type: string maxLength: 36 classId: description: >- The item 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 item lines unless overridden here, at the transaction line level. example: 80000001-1234567890 type: string maxLength: 36 salesTaxCodeId: description: >- The sales-tax code for this item 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. example: 80000001-1234567890 type: string maxLength: 36 billingStatus: description: The billing status of this item line. example: billable type: string enum: - billable - has_been_billed - not_billable overrideItemAccountId: description: >- The account to use for this item line, overriding the default account associated with the item. example: 80000001-1234567890 type: string maxLength: 36 salesRepresentativeId: description: >- The item line's sales representative. Sales representatives can be employees, vendors, or other names in QuickBooks. example: 80000001-1234567890 type: string maxLength: 36 required: - id additionalProperties: false itemGroupLines: description: >- The credit card charge's item group lines, each representing a predefined set of items bundled together because they are commonly purchased together or grouped for faster entry. **IMPORTANT**: 1. Including this array in your update request will **REPLACE** all existing item group lines for the credit card charge with this array. To keep any existing item group lines, you must include them in this array even if they have not changed. **Any item group lines not included will be removed.** 2. To add a new item group line, include it here with the `id` field set to `-1`. 3. If you do not wish to modify any item group lines, omit this field entirely to keep them unchanged. minItems: 1 type: array items: type: object properties: id: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of an existing item group line you wish to retain or update. **IMPORTANT**: Set this field to `-1` for new item group lines you wish to add. example: 456DEF-1234567890 itemGroupId: description: >- The item group line's item group, representing a predefined set of items bundled because they are commonly purchased together or grouped for faster entry. example: 80000001-1234567890 type: string maxLength: 36 quantity: description: >- The quantity of the item group associated with this item group line. This field cannot be cleared. **NOTE**: Do not use this field if the associated item group is a discount item group. example: 5 type: number unitOfMeasure: description: >- The unit-of-measure used for the `quantity` in this item group line. Must be a valid unit within the item's available units of measure. example: Each type: string overrideUnitOfMeasureSetId: description: >- Specifies an alternative unit-of-measure set when updating this item group 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. example: 80000001-1234567890 type: string maxLength: 36 itemLines: description: >- The item group line's item lines, each representing the purchase of a specific item or service. **IMPORTANT**: 1. Including this array in your update request will **REPLACE** all existing item lines for the item group line with this array. To keep any existing item lines, you must include them in this array even if they have not changed. **Any item lines not included will be removed.** 2. To add a new item line, include it here with the `id` field set to `-1`. 3. If you do not wish to modify any item lines, omit this field entirely to keep them unchanged. minItems: 1 type: array items: type: object properties: id: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of an existing item line you wish to retain or update. **IMPORTANT**: Set this field to `-1` for new item lines you wish to add. example: 456DEF-1234567890 itemId: description: >- The item associated with this item 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. example: 80000001-1234567890 type: string maxLength: 36 inventorySiteId: description: >- The site location where inventory for the item associated with this item line is stored. example: 80000001-1234567890 type: string maxLength: 36 inventorySiteLocationId: description: >- The specific location (e.g., bin or shelf) within the inventory site where the item associated with this item line is stored. example: 80000001-1234567890 type: string maxLength: 36 serialNumber: description: >- The serial number of the item associated with this item line. This is used for tracking individual units of serialized inventory items. example: SN1234567890 type: string lotNumber: description: >- The lot number of the item associated with this item line. Used for tracking groups of inventory items that are purchased or manufactured together. example: LOT2023-001 type: string expirationDate: description: >- The expiration date for the serial number or lot number of the item associated with this item line, in ISO 8601 format (YYYY-MM-DD). This is particularly relevant for perishable or time-sensitive inventory items. Note that this field is only supported on QuickBooks Desktop 2023 or later. example: '2025-12-31' type: string format: date description: description: A description of this item line. example: High-quality widget with custom engraving type: string quantity: description: >- The quantity of the item associated with this item line. This field cannot be cleared. **NOTE**: Do not use this field if the associated item is a discount item. example: 5 type: number unitOfMeasure: description: >- The unit-of-measure used for the `quantity` in this item line. Must be a valid unit within the item's available units of measure. example: Each type: string overrideUnitOfMeasureSetId: description: >- Specifies an alternative unit-of-measure set when updating this item 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. example: 80000001-1234567890 type: string maxLength: 36 cost: description: >- The cost of this item line, represented as a decimal string. If both `quantity` and `amount` are specified but not `cost`, QuickBooks will use them to calculate `cost`. Decimal string format: up to 5 decimal places and up to 10 digits before the decimal point (for example, "123.45"). example: '1000.00' type: string amount: description: >- The monetary amount of this item line, represented as a decimal string. If both `quantity` and `cost` are specified but not `amount`, QuickBooks will use them to calculate `amount`. If `amount`, `cost`, and `quantity` are all unspecified, then QuickBooks will calculate `amount` based on a `quantity` of `1` and the suggested `cost`. This field cannot be cleared. Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45"). example: '1000.00' type: string customerId: description: >- The customer or customer-job associated with this item line. example: 80000001-1234567890 type: string maxLength: 36 classId: description: >- The item 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 item lines unless overridden here, at the transaction line level. example: 80000001-1234567890 type: string maxLength: 36 salesTaxCodeId: description: >- The sales-tax code for this item 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. example: 80000001-1234567890 type: string maxLength: 36 billingStatus: description: The billing status of this item line. example: billable type: string enum: - billable - has_been_billed - not_billable overrideItemAccountId: description: >- The account to use for this item line, overriding the default account associated with the item. example: 80000001-1234567890 type: string maxLength: 36 salesRepresentativeId: description: >- The item line's sales representative. Sales representatives can be employees, vendors, or other names in QuickBooks. example: 80000001-1234567890 type: string maxLength: 36 required: - id additionalProperties: false required: - id additionalProperties: false required: - revisionNumber additionalProperties: false responses: '200': description: Returns the updated credit card charge. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_credit_card_charge' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const creditCardCharge = await conductor.qbd.creditCardCharges.update('123ABC-1234567890', { revisionNumber: '1721172183', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(creditCardCharge.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) credit_card_charge = conductor.qbd.credit_card_charges.update( id="123ABC-1234567890", revision_number="1721172183", conductor_end_user_id="end_usr_1234567abcdefg", ) print(credit_card_charge.id) delete: summary: Delete a credit card charge description: >- Permanently deletes a credit card charge. The deletion will fail if the credit card charge is currently in use or has any linked transactions that are in use. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the credit card charge to delete. example: 123ABC-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the credit card charge to delete. responses: '200': description: >- Returns a confirmation of the deletion with the ID of the deleted credit card charge. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: id: type: string description: >- The QuickBooks-assigned unique identifier of the deleted credit card charge. example: 123ABC-1234567890 objectType: description: >- The type of object. This value is always `"qbd_credit_card_charge"`. example: qbd_credit_card_charge type: string const: qbd_credit_card_charge refNumber: anyOf: - type: string - type: 'null' description: >- The case-sensitive user-defined reference number of the deleted credit card charge. example: CARD-1234 deleted: type: boolean description: Indicates whether the credit card charge was deleted. example: true required: - id - objectType - refNumber - deleted additionalProperties: false x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const creditCardCharge = await conductor.qbd.creditCardCharges.delete('123ABC-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(creditCardCharge.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) credit_card_charge = conductor.qbd.credit_card_charges.delete( id="123ABC-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(credit_card_charge.id) /quickbooks-desktop/credit-card-charges/{id}/void: post: summary: Void a credit card charge description: >- Voids a credit card charge by setting its amount to zero while keeping a record of it in QuickBooks. The void will fail if the credit card charge is currently in use or has any linked transactions that are in use. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the credit card charge to void. example: 123ABC-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the credit card charge to void. responses: '200': description: >- Returns a confirmation of the void with the ID of the voided credit card charge. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: id: type: string description: >- The QuickBooks-assigned unique identifier of the voided credit card charge. example: 123ABC-1234567890 objectType: description: >- The type of object. This value is always `"qbd_credit_card_charge"`. example: qbd_credit_card_charge type: string const: qbd_credit_card_charge createdAt: anyOf: - type: string - type: 'null' description: >- The date and time when this credit card charge 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. example: 2025-01-01T12:34:56.000Z updatedAt: anyOf: - type: string - type: 'null' description: >- The date and time when this credit card charge 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. example: 2025-02-01T12:34:56.000Z refNumber: anyOf: - type: string - type: 'null' description: >- The case-sensitive user-defined reference number of the voided credit card charge. example: CARD-1234 voided: type: boolean description: Indicates whether the credit card charge was voided. example: true required: - id - objectType - createdAt - updatedAt - refNumber - voided additionalProperties: false x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const response = await conductor.qbd.creditCardCharges.void('123ABC-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(response.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) response = conductor.qbd.credit_card_charges.void( id="123ABC-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(response.id) /quickbooks-desktop/credit-card-credits: get: summary: List all credit card credits description: >- Returns a list of credit card credits. Use the `cursor` parameter to paginate through the results. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: query name: ids schema: description: >- Filter for specific credit card credits 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 type: array items: type: string description: >- Filter for specific credit card credits 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. - in: query name: refNumbers schema: description: >- Filter for specific credit card credits 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: - CREDIT CARD CREDIT-1234 type: array items: type: string description: >- Filter for specific credit card credits 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. - in: query name: limit schema: default: 150 description: >- 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. example: 150 type: integer minimum: 1 maximum: 150 description: >- 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. - in: query name: cursor schema: description: >- 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 type: string description: >- 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. - in: query name: updatedAfter schema: description: >- Filter for credit card credits 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. example: 2025-01-01T12:34:56.000Z type: string description: >- Filter for credit card credits 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. - in: query name: updatedBefore schema: description: >- Filter for credit card credits 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. example: 2025-02-01T12:34:56.000Z type: string description: >- Filter for credit card credits 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. - in: query name: transactionDateFrom schema: description: >- Filter for credit card credits 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-01` → `2025-01-01T00:00:00`). example: '2025-01-01' type: string format: date description: >- Filter for credit card credits 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-01` → `2025-01-01T00:00:00`). - in: query name: transactionDateTo schema: description: >- Filter for credit card credits 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-01` → `2025-01-01T23:59:59`). example: '2025-02-01' type: string format: date description: >- Filter for credit card credits 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-01` → `2025-01-01T23:59:59`). - in: query name: payeeIds schema: description: >- Filter for credit card credits received from these payees. These are the vendors or companies from whom these credit card credits were received. example: - 80000001-1234567890 type: array items: type: string description: >- Filter for credit card credits received from these payees. These are the vendors or companies from whom these credit card credits were received. - in: query name: accountIds schema: description: Filter for credit card credits associated with these accounts. example: - 80000001-1234567890 type: array items: type: string description: Filter for credit card credits associated with these accounts. - in: query name: refNumberContains schema: description: >- Filter for credit card credits whose `refNumber` contains this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberStartsWith` or `refNumberEndsWith`. example: CREDIT-1234 type: string description: >- Filter for credit card credits whose `refNumber` contains this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberStartsWith` or `refNumberEndsWith`. - in: query name: refNumberStartsWith schema: description: >- Filter for credit card credits whose `refNumber` starts with this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberContains` or `refNumberEndsWith`. example: CREDIT type: string description: >- Filter for credit card credits whose `refNumber` starts with this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberContains` or `refNumberEndsWith`. - in: query name: refNumberEndsWith schema: description: >- Filter for credit card credits whose `refNumber` ends with this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberContains` or `refNumberStartsWith`. example: '1234' type: string description: >- Filter for credit card credits whose `refNumber` ends with this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberContains` or `refNumberStartsWith`. - in: query name: refNumberFrom schema: description: >- Filter for credit card credits 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: CREDIT-0001 type: string description: >- Filter for credit card credits 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. - in: query name: refNumberTo schema: description: >- Filter for credit card credits 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: CREDIT-9999 type: string description: >- Filter for credit card credits 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. - in: query name: currencyIds schema: description: Filter for credit card credits in these currencies. example: - 80000001-1234567890 type: array items: type: string description: Filter for credit card credits in these currencies. - in: query name: includeLineItems schema: description: Whether to include line items in the response. Defaults to `true`. example: true type: boolean default: true description: Whether to include line items in the response. Defaults to `true`. responses: '200': description: Returns a list of credit card credits. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: objectType: description: The type of object. This value is always `"list"`. example: list type: string const: list url: type: string description: The endpoint URL where this list can be accessed. example: /v1/quickbooks-desktop/credit-card-credits data: type: array items: $ref: '#/components/schemas/qbd_credit_card_credit' description: The array of credit card credits. nextCursor: anyOf: - type: string - type: 'null' description: >- The `nextCursor` is a pagination token returned in the response when you use the `limit` parameter in your request. To retrieve subsequent pages of results, include this token as the value of the `cursor` request parameter in your following API calls. **NOTE**: The `nextCursor` value remains constant throughout the pagination process for a specific list instance; continue to use the same `nextCursor` token in each request to fetch additional pages. example: 12345678-abcd-abcd-example-1234567890ab remainingCount: anyOf: - type: number - type: 'null' description: The number of objects remaining to be fetched. example: 10 hasMore: type: boolean description: Indicates whether there are more objects to be fetched. required: - objectType - url - data - nextCursor - remainingCount - hasMore additionalProperties: false x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); // Automatically fetches more pages as needed. for await (const creditCardCredit of conductor.qbd.creditCardCredits.list({ conductorEndUserId: 'end_usr_1234567abcdefg', })) { console.log(creditCardCredit.id); } - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) page = conductor.qbd.credit_card_credits.list( conductor_end_user_id="end_usr_1234567abcdefg", ) page = page.data[0] print(page.id) post: summary: Create a credit card credit description: Creates a new credit card credit for the specified account. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. requestBody: required: true content: application/json: schema: type: object properties: accountId: description: >- The bank or credit card account to which this credit card credit is posted. example: 80000001-1234567890 type: string maxLength: 36 payeeId: description: >- The vendor or company from whom this credit card credit was received for purchased merchandise or services. example: 80000001-1234567890 type: string maxLength: 36 transactionDate: type: string format: date description: >- The date of this credit card credit, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-01' refNumber: description: >- The case-sensitive user-defined reference number for this credit card credit, 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. When left blank in this create request, this field will be left blank in QuickBooks (i.e., it does *not* auto-increment). Maximum length: 11 characters. example: CREDIT-1234 type: string maxLength: 11 memo: description: A memo or note for this credit card credit. example: Refund for returned office supplies type: string salesTaxCodeId: description: >- The sales-tax code for this credit card credit, determining whether it is taxable or non-taxable. If set, this overrides any sales-tax codes defined on the payee. This can be overridden on the credit card credit'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. example: 80000001-1234567890 type: string maxLength: 36 exchangeRate: description: >- The market exchange rate between this credit card credit'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: 1.2345 type: number externalId: type: string format: uuid description: >- 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. **IMPORTANT**: This field must be formatted as a valid GUID; otherwise, QuickBooks will return an error. example: 12345678-abcd-1234-abcd-1234567890ab expenseLines: description: >- The credit card credit's expense lines, each representing one line in this expense. minItems: 1 type: array items: type: object properties: accountId: description: >- The expense account being debited (increased) for this expense line. The corresponding account being credited is usually a liability account (e.g., Accounts-Payable) or an asset account (e.g., Cash), depending on the transaction type. example: 80000001-1234567890 type: string maxLength: 36 amount: description: >- The monetary amount of this expense line, represented as a decimal string. Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45"). example: '1000.00' type: string memo: description: A memo or note for this expense line. example: New office chair type: string payeeId: description: >- 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). example: 80000001-1234567890 type: string maxLength: 36 classId: description: >- The expense 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 expense lines unless overridden here, at the transaction line level. example: 80000001-1234567890 type: string maxLength: 36 salesTaxCodeId: description: >- The sales-tax code for this expense 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. example: 80000001-1234567890 type: string maxLength: 36 billingStatus: description: The billing status of this expense line. example: billable type: string enum: - billable - has_been_billed - not_billable default: billable salesRepresentativeId: description: >- The expense line's sales representative. Sales representatives can be employees, vendors, or other names in QuickBooks. example: 80000001-1234567890 type: string maxLength: 36 customFields: description: >- The custom fields for the expense line object, added as user-defined data extensions, not included in the standard QuickBooks object. minItems: 1 type: array items: type: object properties: ownerId: type: string description: >- 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. example: '0' name: type: string description: >- 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. example: Customer Rating value: type: string description: >- The value of this custom field. The maximum length depends on the field's data type. example: Premium required: - ownerId - name - value additionalProperties: false additionalProperties: false itemLines: description: >- The credit card credit's item lines, each representing the purchase of a specific item or service. minItems: 1 type: array items: type: object properties: itemId: description: >- The item associated with this item 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. example: 80000001-1234567890 type: string maxLength: 36 inventorySiteId: description: >- The site location where inventory for the item associated with this item line is stored. example: 80000001-1234567890 type: string maxLength: 36 inventorySiteLocationId: description: >- The specific location (e.g., bin or shelf) within the inventory site where the item associated with this item line is stored. example: 80000001-1234567890 type: string maxLength: 36 serialNumber: description: >- The serial number of the item associated with this item line. This is used for tracking individual units of serialized inventory items. example: SN1234567890 type: string lotNumber: description: >- The lot number of the item associated with this item line. Used for tracking groups of inventory items that are purchased or manufactured together. example: LOT2023-001 type: string expirationDate: description: >- The expiration date for the serial number or lot number of the item associated with this item line, in ISO 8601 format (YYYY-MM-DD). This is particularly relevant for perishable or time-sensitive inventory items. Note that this field is only supported on QuickBooks Desktop 2023 or later. example: '2025-12-31' type: string format: date description: description: A description of this item line. example: High-quality widget with custom engraving type: string quantity: description: >- The quantity of the item associated with this item line. This field cannot be cleared. **NOTE**: Do not use this field if the associated item is a discount item. example: 5 type: number unitOfMeasure: description: >- The unit-of-measure used for the `quantity` in this item line. Must be a valid unit within the item's available units of measure. example: Each type: string cost: description: >- The cost of this item line, represented as a decimal string. If both `quantity` and `amount` are specified but not `cost`, QuickBooks will use them to calculate `cost`. Decimal string format: up to 5 decimal places and up to 10 digits before the decimal point (for example, "123.45"). example: '1000.00' type: string amount: description: >- The monetary amount of this item line, represented as a decimal string. If both `quantity` and `cost` are specified but not `amount`, QuickBooks will use them to calculate `amount`. If `amount`, `cost`, and `quantity` are all unspecified, then QuickBooks will calculate `amount` based on a `quantity` of `1` and the suggested `cost`. This field cannot be cleared. Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45"). example: '1000.00' type: string customerId: description: >- The customer or customer-job associated with this item line. example: 80000001-1234567890 type: string maxLength: 36 classId: description: >- The item 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 item lines unless overridden here, at the transaction line level. example: 80000001-1234567890 type: string maxLength: 36 salesTaxCodeId: description: >- The sales-tax code for this item 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. example: 80000001-1234567890 type: string maxLength: 36 billingStatus: description: The billing status of this item line. example: billable type: string enum: - billable - has_been_billed - not_billable default: billable overrideItemAccountId: description: >- The account to use for this item line, overriding the default account associated with the item. example: 80000001-1234567890 type: string maxLength: 36 linkToTransactionLine: description: >- An existing transaction line that you wish to link to this item line. Note that this only links to a single transaction line item, not an entire transaction. If you want to link an entire transaction and bring in all its lines, instead use the field `linkToTransactionIds` on the parent transaction, if available. If the parent transaction is a bill or an item receipt, you can only link to purchase orders; QuickBooks does not support linking these transactions to other transaction types. Transaction lines can only be linked when creating this item line and cannot be unlinked later. **IMPORTANT**: If you use `linkToTransactionLine` on this item line, you cannot use the field `item` on this line (QuickBooks will return an error) because this field brings in all of the item information you need. You can, however, specify whatever `quantity` or `rate` that you want, or any other transaction line element other than `item`. If the parent transaction supports the `linkToTransactionIds` field, you can use both `linkToTransactionLine` (on this item line) and `linkToTransactionIds` (on its parent transaction) in the same request as long as they do NOT link to the same transaction (otherwise, QuickBooks will return an error). QuickBooks will also return an error if you attempt to link a transaction that is empty or already closed. **IMPORTANT**: By default, QuickBooks will not return any information about the linked transaction line in this endpoint's response even when this request is successful. To see the transaction line linked via this field, refetch the parent transaction and check the `linkedTransactions` response field. If fetching a list of transactions, you must also specify the parameter `includeLinkedTransactions=true` to see the `linkedTransactions` response field. type: object properties: transactionId: type: string maxLength: 36 description: >- The ID of the transaction to which to link this transaction. example: 123ABC-1234567890 transactionLineId: type: string maxLength: 36 description: >- The ID of the transaction line to which to link this transaction. example: 456DEF-1234567890 required: - transactionId - transactionLineId additionalProperties: false salesRepresentativeId: description: >- The item line's sales representative. Sales representatives can be employees, vendors, or other names in QuickBooks. example: 80000001-1234567890 type: string maxLength: 36 customFields: description: >- The custom fields for the item line object, added as user-defined data extensions, not included in the standard QuickBooks object. minItems: 1 type: array items: type: object properties: ownerId: type: string description: >- 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. example: '0' name: type: string description: >- 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. example: Customer Rating value: type: string description: >- The value of this custom field. The maximum length depends on the field's data type. example: Premium required: - ownerId - name - value additionalProperties: false additionalProperties: false itemGroupLines: description: >- The credit card credit's item group lines, each representing a predefined set of items bundled together because they are commonly purchased together or grouped for faster entry. minItems: 1 type: array items: type: object properties: itemGroupId: description: >- The item group line's item group, representing a predefined set of items bundled because they are commonly purchased together or grouped for faster entry. example: 80000001-1234567890 type: string maxLength: 36 quantity: description: >- The quantity of the item group associated with this item group line. This field cannot be cleared. **NOTE**: Do not use this field if the associated item group is a discount item group. example: 5 type: number unitOfMeasure: description: >- The unit-of-measure used for the `quantity` in this item group line. Must be a valid unit within the item's available units of measure. example: Each type: string inventorySiteId: description: >- The site location where inventory for the item group associated with this item group line is stored. example: 80000001-1234567890 type: string maxLength: 36 inventorySiteLocationId: description: >- The specific location (e.g., bin or shelf) within the inventory site where the item group associated with this item group line is stored. example: 80000001-1234567890 type: string maxLength: 36 customFields: description: >- The custom fields for the item group line object, added as user-defined data extensions, not included in the standard QuickBooks object. minItems: 1 type: array items: type: object properties: ownerId: type: string description: >- 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. example: '0' name: type: string description: >- 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. example: Customer Rating value: type: string description: >- The value of this custom field. The maximum length depends on the field's data type. example: Premium required: - ownerId - name - value additionalProperties: false required: - itemGroupId additionalProperties: false required: - accountId - transactionDate additionalProperties: false responses: '200': description: Returns the newly created credit card credit. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_credit_card_credit' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const creditCardCredit = await conductor.qbd.creditCardCredits.create({ accountId: '80000001-1234567890', transactionDate: '2024-10-01', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(creditCardCredit.id); - lang: Python source: |- import os from datetime import date from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) credit_card_credit = conductor.qbd.credit_card_credits.create( account_id="80000001-1234567890", transaction_date=date.fromisoformat("2024-10-01"), conductor_end_user_id="end_usr_1234567abcdefg", ) print(credit_card_credit.id) /quickbooks-desktop/credit-card-credits/{id}: get: summary: Retrieve a credit card credit description: >- Retrieves a credit card credit by ID. **IMPORTANT:** If you need to fetch multiple specific credit card credits 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. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the credit card credit to retrieve. example: 123ABC-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the credit card credit to retrieve. responses: '200': description: Returns the specified credit card credit. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_credit_card_credit' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const creditCardCredit = await conductor.qbd.creditCardCredits.retrieve('123ABC-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(creditCardCredit.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) credit_card_credit = conductor.qbd.credit_card_credits.retrieve( id="123ABC-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(credit_card_credit.id) post: summary: Update a credit card credit description: >- Updates an existing credit card credit. **NOTE:** If you include `expenseLines`, `itemLines`, or `itemGroupLines`, 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. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the credit card credit to update. example: 123ABC-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the credit card credit to update. requestBody: required: true content: application/json: schema: type: object properties: revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of the credit card credit 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. example: '1721172183' accountId: description: >- The bank or credit card account to which this credit card credit is posted. example: 80000001-1234567890 type: string maxLength: 36 payeeId: description: >- The vendor or company from whom this credit card credit was received for purchased merchandise or services. example: 80000001-1234567890 type: string maxLength: 36 transactionDate: description: >- The date of this credit card credit, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-01' type: string format: date refNumber: description: >- The case-sensitive user-defined reference number for this credit card credit, 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. example: CREDIT-1234 type: string maxLength: 11 memo: description: A memo or note for this credit card credit. example: Refund for returned office supplies type: string salesTaxCodeId: description: >- The sales-tax code for this credit card credit, determining whether it is taxable or non-taxable. If set, this overrides any sales-tax codes defined on the payee. This can be overridden on the credit card credit'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. example: 80000001-1234567890 type: string maxLength: 36 exchangeRate: description: >- The market exchange rate between this credit card credit'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: 1.2345 type: number clearExpenseLines: description: >- When `true`, removes all existing expense lines associated with this credit card credit. To modify or add individual expense lines, use the field `expenseLines` instead. example: false type: boolean expenseLines: description: >- The credit card credit's expense lines, each representing one line in this expense. **IMPORTANT**: 1. Including this array in your update request will **REPLACE** all existing expense lines for the credit card credit with this array. To keep any existing expense lines, you must include them in this array even if they have not changed. **Any expense lines not included will be removed.** 2. To add a new expense line, include it here with the `id` field set to `-1`. 3. If you do not wish to modify any expense lines, omit this field entirely to keep them unchanged. minItems: 1 type: array items: type: object properties: id: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of an existing expense line you wish to retain or update. **IMPORTANT**: Set this field to `-1` for new expense lines you wish to add. example: 456DEF-1234567890 accountId: description: >- The expense account being debited (increased) for this expense line. The corresponding account being credited is usually a liability account (e.g., Accounts-Payable) or an asset account (e.g., Cash), depending on the transaction type. example: 80000001-1234567890 type: string maxLength: 36 amount: description: >- The monetary amount of this expense line, represented as a decimal string. Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45"). example: '1000.00' type: string memo: description: A memo or note for this expense line. example: New office chair type: string payeeId: description: >- 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). example: 80000001-1234567890 type: string maxLength: 36 classId: description: >- The expense 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 expense lines unless overridden here, at the transaction line level. example: 80000001-1234567890 type: string maxLength: 36 salesTaxCodeId: description: >- The sales-tax code for this expense 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. example: 80000001-1234567890 type: string maxLength: 36 billingStatus: description: The billing status of this expense line. example: billable type: string enum: - billable - has_been_billed - not_billable salesRepresentativeId: description: >- The expense line's sales representative. Sales representatives can be employees, vendors, or other names in QuickBooks. example: 80000001-1234567890 type: string maxLength: 36 required: - id additionalProperties: false clearItemLines: description: >- When `true`, removes all existing item lines associated with this credit card credit. To modify or add individual item lines, use the field `itemLines` instead. example: false type: boolean itemLines: description: >- The credit card credit's item lines, each representing the purchase of a specific item or service. **IMPORTANT**: 1. Including this array in your update request will **REPLACE** all existing item lines for the credit card credit with this array. To keep any existing item lines, you must include them in this array even if they have not changed. **Any item lines not included will be removed.** 2. To add a new item line, include it here with the `id` field set to `-1`. 3. If you do not wish to modify any item lines, omit this field entirely to keep them unchanged. minItems: 1 type: array items: type: object properties: id: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of an existing item line you wish to retain or update. **IMPORTANT**: Set this field to `-1` for new item lines you wish to add. example: 456DEF-1234567890 itemId: description: >- The item associated with this item 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. example: 80000001-1234567890 type: string maxLength: 36 inventorySiteId: description: >- The site location where inventory for the item associated with this item line is stored. example: 80000001-1234567890 type: string maxLength: 36 inventorySiteLocationId: description: >- The specific location (e.g., bin or shelf) within the inventory site where the item associated with this item line is stored. example: 80000001-1234567890 type: string maxLength: 36 serialNumber: description: >- The serial number of the item associated with this item line. This is used for tracking individual units of serialized inventory items. example: SN1234567890 type: string lotNumber: description: >- The lot number of the item associated with this item line. Used for tracking groups of inventory items that are purchased or manufactured together. example: LOT2023-001 type: string expirationDate: description: >- The expiration date for the serial number or lot number of the item associated with this item line, in ISO 8601 format (YYYY-MM-DD). This is particularly relevant for perishable or time-sensitive inventory items. Note that this field is only supported on QuickBooks Desktop 2023 or later. example: '2025-12-31' type: string format: date description: description: A description of this item line. example: High-quality widget with custom engraving type: string quantity: description: >- The quantity of the item associated with this item line. This field cannot be cleared. **NOTE**: Do not use this field if the associated item is a discount item. example: 5 type: number unitOfMeasure: description: >- The unit-of-measure used for the `quantity` in this item line. Must be a valid unit within the item's available units of measure. example: Each type: string overrideUnitOfMeasureSetId: description: >- Specifies an alternative unit-of-measure set when updating this item 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. example: 80000001-1234567890 type: string maxLength: 36 cost: description: >- The cost of this item line, represented as a decimal string. If both `quantity` and `amount` are specified but not `cost`, QuickBooks will use them to calculate `cost`. Decimal string format: up to 5 decimal places and up to 10 digits before the decimal point (for example, "123.45"). example: '1000.00' type: string amount: description: >- The monetary amount of this item line, represented as a decimal string. If both `quantity` and `cost` are specified but not `amount`, QuickBooks will use them to calculate `amount`. If `amount`, `cost`, and `quantity` are all unspecified, then QuickBooks will calculate `amount` based on a `quantity` of `1` and the suggested `cost`. This field cannot be cleared. Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45"). example: '1000.00' type: string customerId: description: >- The customer or customer-job associated with this item line. example: 80000001-1234567890 type: string maxLength: 36 classId: description: >- The item 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 item lines unless overridden here, at the transaction line level. example: 80000001-1234567890 type: string maxLength: 36 salesTaxCodeId: description: >- The sales-tax code for this item 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. example: 80000001-1234567890 type: string maxLength: 36 billingStatus: description: The billing status of this item line. example: billable type: string enum: - billable - has_been_billed - not_billable overrideItemAccountId: description: >- The account to use for this item line, overriding the default account associated with the item. example: 80000001-1234567890 type: string maxLength: 36 salesRepresentativeId: description: >- The item line's sales representative. Sales representatives can be employees, vendors, or other names in QuickBooks. example: 80000001-1234567890 type: string maxLength: 36 required: - id additionalProperties: false itemGroupLines: description: >- The credit card credit's item group lines, each representing a predefined set of items bundled together because they are commonly purchased together or grouped for faster entry. **IMPORTANT**: 1. Including this array in your update request will **REPLACE** all existing item group lines for the credit card credit with this array. To keep any existing item group lines, you must include them in this array even if they have not changed. **Any item group lines not included will be removed.** 2. To add a new item group line, include it here with the `id` field set to `-1`. 3. If you do not wish to modify any item group lines, omit this field entirely to keep them unchanged. minItems: 1 type: array items: type: object properties: id: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of an existing item group line you wish to retain or update. **IMPORTANT**: Set this field to `-1` for new item group lines you wish to add. example: 456DEF-1234567890 itemGroupId: description: >- The item group line's item group, representing a predefined set of items bundled because they are commonly purchased together or grouped for faster entry. example: 80000001-1234567890 type: string maxLength: 36 quantity: description: >- The quantity of the item group associated with this item group line. This field cannot be cleared. **NOTE**: Do not use this field if the associated item group is a discount item group. example: 5 type: number unitOfMeasure: description: >- The unit-of-measure used for the `quantity` in this item group line. Must be a valid unit within the item's available units of measure. example: Each type: string overrideUnitOfMeasureSetId: description: >- Specifies an alternative unit-of-measure set when updating this item group 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. example: 80000001-1234567890 type: string maxLength: 36 itemLines: description: >- The item group line's item lines, each representing the purchase of a specific item or service. **IMPORTANT**: 1. Including this array in your update request will **REPLACE** all existing item lines for the item group line with this array. To keep any existing item lines, you must include them in this array even if they have not changed. **Any item lines not included will be removed.** 2. To add a new item line, include it here with the `id` field set to `-1`. 3. If you do not wish to modify any item lines, omit this field entirely to keep them unchanged. minItems: 1 type: array items: type: object properties: id: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of an existing item line you wish to retain or update. **IMPORTANT**: Set this field to `-1` for new item lines you wish to add. example: 456DEF-1234567890 itemId: description: >- The item associated with this item 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. example: 80000001-1234567890 type: string maxLength: 36 inventorySiteId: description: >- The site location where inventory for the item associated with this item line is stored. example: 80000001-1234567890 type: string maxLength: 36 inventorySiteLocationId: description: >- The specific location (e.g., bin or shelf) within the inventory site where the item associated with this item line is stored. example: 80000001-1234567890 type: string maxLength: 36 serialNumber: description: >- The serial number of the item associated with this item line. This is used for tracking individual units of serialized inventory items. example: SN1234567890 type: string lotNumber: description: >- The lot number of the item associated with this item line. Used for tracking groups of inventory items that are purchased or manufactured together. example: LOT2023-001 type: string expirationDate: description: >- The expiration date for the serial number or lot number of the item associated with this item line, in ISO 8601 format (YYYY-MM-DD). This is particularly relevant for perishable or time-sensitive inventory items. Note that this field is only supported on QuickBooks Desktop 2023 or later. example: '2025-12-31' type: string format: date description: description: A description of this item line. example: High-quality widget with custom engraving type: string quantity: description: >- The quantity of the item associated with this item line. This field cannot be cleared. **NOTE**: Do not use this field if the associated item is a discount item. example: 5 type: number unitOfMeasure: description: >- The unit-of-measure used for the `quantity` in this item line. Must be a valid unit within the item's available units of measure. example: Each type: string overrideUnitOfMeasureSetId: description: >- Specifies an alternative unit-of-measure set when updating this item 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. example: 80000001-1234567890 type: string maxLength: 36 cost: description: >- The cost of this item line, represented as a decimal string. If both `quantity` and `amount` are specified but not `cost`, QuickBooks will use them to calculate `cost`. Decimal string format: up to 5 decimal places and up to 10 digits before the decimal point (for example, "123.45"). example: '1000.00' type: string amount: description: >- The monetary amount of this item line, represented as a decimal string. If both `quantity` and `cost` are specified but not `amount`, QuickBooks will use them to calculate `amount`. If `amount`, `cost`, and `quantity` are all unspecified, then QuickBooks will calculate `amount` based on a `quantity` of `1` and the suggested `cost`. This field cannot be cleared. Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45"). example: '1000.00' type: string customerId: description: >- The customer or customer-job associated with this item line. example: 80000001-1234567890 type: string maxLength: 36 classId: description: >- The item 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 item lines unless overridden here, at the transaction line level. example: 80000001-1234567890 type: string maxLength: 36 salesTaxCodeId: description: >- The sales-tax code for this item 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. example: 80000001-1234567890 type: string maxLength: 36 billingStatus: description: The billing status of this item line. example: billable type: string enum: - billable - has_been_billed - not_billable overrideItemAccountId: description: >- The account to use for this item line, overriding the default account associated with the item. example: 80000001-1234567890 type: string maxLength: 36 salesRepresentativeId: description: >- The item line's sales representative. Sales representatives can be employees, vendors, or other names in QuickBooks. example: 80000001-1234567890 type: string maxLength: 36 required: - id additionalProperties: false required: - id additionalProperties: false required: - revisionNumber additionalProperties: false responses: '200': description: Returns the updated credit card credit. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_credit_card_credit' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const creditCardCredit = await conductor.qbd.creditCardCredits.update('123ABC-1234567890', { revisionNumber: '1721172183', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(creditCardCredit.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) credit_card_credit = conductor.qbd.credit_card_credits.update( id="123ABC-1234567890", revision_number="1721172183", conductor_end_user_id="end_usr_1234567abcdefg", ) print(credit_card_credit.id) delete: summary: Delete a credit card credit description: >- Permanently deletes a credit card credit. The deletion will fail if the credit card credit is currently in use or has any linked transactions that are in use. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the credit card credit to delete. example: 123ABC-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the credit card credit to delete. responses: '200': description: >- Returns a confirmation of the deletion with the ID of the deleted credit card credit. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: id: type: string description: >- The QuickBooks-assigned unique identifier of the deleted credit card credit. example: 123ABC-1234567890 objectType: description: >- The type of object. This value is always `"qbd_credit_card_credit"`. example: qbd_credit_card_credit type: string const: qbd_credit_card_credit refNumber: anyOf: - type: string - type: 'null' description: >- The case-sensitive user-defined reference number of the deleted credit card credit. example: CREDIT-1234 deleted: type: boolean description: Indicates whether the credit card credit was deleted. example: true required: - id - objectType - refNumber - deleted additionalProperties: false x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const creditCardCredit = await conductor.qbd.creditCardCredits.delete('123ABC-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(creditCardCredit.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) credit_card_credit = conductor.qbd.credit_card_credits.delete( id="123ABC-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(credit_card_credit.id) /quickbooks-desktop/credit-card-credits/{id}/void: post: summary: Void a credit card credit description: >- Voids a credit card credit by setting its amount to zero while keeping a record of it in QuickBooks. The void will fail if the credit card credit is currently in use or has any linked transactions that are in use. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the credit card credit to void. example: 123ABC-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the credit card credit to void. responses: '200': description: >- Returns a confirmation of the void with the ID of the voided credit card credit. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: id: type: string description: >- The QuickBooks-assigned unique identifier of the voided credit card credit. example: 123ABC-1234567890 objectType: description: >- The type of object. This value is always `"qbd_credit_card_credit"`. example: qbd_credit_card_credit type: string const: qbd_credit_card_credit createdAt: anyOf: - type: string - type: 'null' description: >- The date and time when this credit card credit 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. example: 2025-01-01T12:34:56.000Z updatedAt: anyOf: - type: string - type: 'null' description: >- The date and time when this credit card credit 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. example: 2025-02-01T12:34:56.000Z refNumber: anyOf: - type: string - type: 'null' description: >- The case-sensitive user-defined reference number of the voided credit card credit. example: CREDIT-1234 voided: type: boolean description: Indicates whether the credit card credit was voided. example: true required: - id - objectType - createdAt - updatedAt - refNumber - voided additionalProperties: false x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const response = await conductor.qbd.creditCardCredits.void('123ABC-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(response.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) response = conductor.qbd.credit_card_credits.void( id="123ABC-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(response.id) /quickbooks-desktop/credit-card-refunds: get: summary: List all credit card refunds description: >- Returns a list of credit card refunds. Use the `cursor` parameter to paginate through the results. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: query name: ids schema: description: >- Filter for specific credit card refunds 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 type: array items: type: string description: >- Filter for specific credit card refunds 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. - in: query name: refNumbers schema: description: >- Filter for specific credit card refunds 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: - CREDIT CARD REFUND-1234 type: array items: type: string description: >- Filter for specific credit card refunds 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. - in: query name: limit schema: default: 150 description: >- 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. example: 150 type: integer minimum: 1 maximum: 150 description: >- 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. - in: query name: cursor schema: description: >- 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 type: string description: >- 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. - in: query name: updatedAfter schema: description: >- Filter for credit card refunds 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. example: 2025-01-01T12:34:56.000Z type: string description: >- Filter for credit card refunds 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. - in: query name: updatedBefore schema: description: >- Filter for credit card refunds 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. example: 2025-02-01T12:34:56.000Z type: string description: >- Filter for credit card refunds 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. - in: query name: transactionDateFrom schema: description: >- Filter for credit card refunds 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-01` → `2025-01-01T00:00:00`). example: '2025-01-01' type: string format: date description: >- Filter for credit card refunds 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-01` → `2025-01-01T00:00:00`). - in: query name: transactionDateTo schema: description: >- Filter for credit card refunds 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-01` → `2025-01-01T23:59:59`). example: '2025-02-01' type: string format: date description: >- Filter for credit card refunds 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-01` → `2025-01-01T23:59:59`). - in: query name: customerIds schema: description: Filter for credit card refunds refunded to these customers. example: - 80000001-1234567890 type: array items: type: string description: Filter for credit card refunds refunded to these customers. - in: query name: accountIds schema: description: Filter for credit card refunds associated with these accounts. example: - 80000001-1234567890 type: array items: type: string description: Filter for credit card refunds associated with these accounts. - in: query name: refNumberContains schema: description: >- Filter for credit card refunds whose `refNumber` contains this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberStartsWith` or `refNumberEndsWith`. example: REFUND-1234 type: string description: >- Filter for credit card refunds whose `refNumber` contains this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberStartsWith` or `refNumberEndsWith`. - in: query name: refNumberStartsWith schema: description: >- Filter for credit card refunds whose `refNumber` starts with this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberContains` or `refNumberEndsWith`. example: REFUND type: string description: >- Filter for credit card refunds whose `refNumber` starts with this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberContains` or `refNumberEndsWith`. - in: query name: refNumberEndsWith schema: description: >- Filter for credit card refunds whose `refNumber` ends with this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberContains` or `refNumberStartsWith`. example: '1234' type: string description: >- Filter for credit card refunds whose `refNumber` ends with this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberContains` or `refNumberStartsWith`. - in: query name: refNumberFrom schema: description: >- Filter for credit card refunds 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: REFUND-0001 type: string description: >- Filter for credit card refunds 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. - in: query name: refNumberTo schema: description: >- Filter for credit card refunds 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: REFUND-9999 type: string description: >- Filter for credit card refunds 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. - in: query name: currencyIds schema: description: Filter for credit card refunds in these currencies. example: - 80000001-1234567890 type: array items: type: string description: Filter for credit card refunds in these currencies. - in: query name: includeLineItems schema: description: Whether to include line items in the response. Defaults to `true`. example: true type: boolean default: true description: Whether to include line items in the response. Defaults to `true`. responses: '200': description: Returns a list of credit card refunds. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: objectType: description: The type of object. This value is always `"list"`. example: list type: string const: list url: type: string description: The endpoint URL where this list can be accessed. example: /v1/quickbooks-desktop/credit-card-refunds data: type: array items: $ref: '#/components/schemas/qbd_credit_card_refund' description: The array of credit card refunds. nextCursor: anyOf: - type: string - type: 'null' description: >- The `nextCursor` is a pagination token returned in the response when you use the `limit` parameter in your request. To retrieve subsequent pages of results, include this token as the value of the `cursor` request parameter in your following API calls. **NOTE**: The `nextCursor` value remains constant throughout the pagination process for a specific list instance; continue to use the same `nextCursor` token in each request to fetch additional pages. example: 12345678-abcd-abcd-example-1234567890ab remainingCount: anyOf: - type: number - type: 'null' description: The number of objects remaining to be fetched. example: 10 hasMore: type: boolean description: Indicates whether there are more objects to be fetched. required: - objectType - url - data - nextCursor - remainingCount - hasMore additionalProperties: false x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); // Automatically fetches more pages as needed. for await (const creditCardRefund of conductor.qbd.creditCardRefunds.list({ conductorEndUserId: 'end_usr_1234567abcdefg', })) { console.log(creditCardRefund.id); } - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) page = conductor.qbd.credit_card_refunds.list( conductor_end_user_id="end_usr_1234567abcdefg", ) page = page.data[0] print(page.id) post: summary: Create a credit card refund description: >- Creates a credit card refund linked to one or more existing credit transactions, such as credit memos or overpayments. You must supply at least one entry in `refundAppliedToTransactions`, and the refund amount cannot exceed the available balance on the linked credits. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. requestBody: required: true content: application/json: schema: type: object properties: customerId: description: >- The customer or customer-job associated with this credit card refund. example: 80000001-1234567890 type: string maxLength: 36 refundFromAccountId: description: >- The account providing funds for this credit card refund. This is typically the Undeposited Funds account used to hold customer payments. If omitted, QuickBooks Desktop uses the default Undeposited Funds account configured in the company file. example: 80000001-1234567890 type: string maxLength: 36 receivablesAccountId: description: >- The Accounts-Receivable (A/R) account to which this credit card refund is assigned, used to track the amount owed. If omitted, QuickBooks Desktop uses the default A/R account configured in the company file. **IMPORTANT**: If this credit card refund is linked to other transactions, this A/R account must match the `receivablesAccount` used in all linked transactions. For example, when refunding a credit card payment, the A/R account must match the one used in each linked credit transaction being refunded. example: 80000001-1234567890 type: string maxLength: 36 transactionDate: type: string format: date description: >- The date of this credit card refund, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-01' refNumber: description: >- The case-sensitive user-defined reference number for this credit card refund, 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. When left blank in this create request, this field will be left blank in QuickBooks (i.e., it does *not* auto-increment). Maximum length: 11 characters. example: REFUND-1234 type: string maxLength: 11 address: description: The address that is printed on the credit card refund. type: object properties: line1: description: >- The first line of the address (e.g., street, PO Box, or company name). Maximum length: 41 characters. example: Conductor Labs Inc. type: string maxLength: 41 line2: description: >- The second line of the address, if needed (e.g., apartment, suite, unit, or building). Maximum length: 41 characters. example: 540 Market St. type: string maxLength: 41 line3: description: |- The third line of the address, if needed. Maximum length: 41 characters. example: Suite 100 type: string maxLength: 41 line4: description: |- The fourth line of the address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 line5: description: |- The fifth line of the address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 city: description: >- The city, district, suburb, town, or village name of the address. Maximum length: 31 characters. example: San Francisco type: string maxLength: 31 state: description: >- The state, county, province, or region name of the address. Maximum length: 21 characters. example: CA type: string maxLength: 21 postalCode: description: |- The postal code or ZIP code of the address. Maximum length: 13 characters. example: '94110' type: string maxLength: 13 country: description: The country name of the address. example: United States type: string note: description: >- A note written at the bottom of the address in the form in which it appears, such as the invoice form. example: Conductor HQ type: string additionalProperties: false paymentMethodId: description: >- The credit card refund's payment method (e.g., cash, check, credit card). **NOTE**: If this credit card refund contains credit card transaction data supplied from QuickBooks Merchant Services (QBMS) transaction responses, you must specify a credit card payment method (e.g., "Visa", "MasterCard", etc.). example: 80000001-1234567890 type: string maxLength: 36 memo: description: A memo or note for this credit card refund. example: Refund to customer for duplicate credit card charge type: string creditCardTransaction: description: >- The credit card transaction data for this credit card refund's payment when using QuickBooks Merchant Services (QBMS). If specifying this field, you must also specify the `paymentMethod` field. type: object properties: request: description: >- The transaction request data originally supplied for this credit card transaction when using QuickBooks Merchant Services (QBMS). type: object properties: number: type: string description: >- The credit card number. Must be masked with lower case "x" and no dashes. example: xxxxxxxxxxxx1234 expirationMonth: description: The month when the credit card expires. example: 12 type: number expirationYear: description: The year when the credit card expires. example: 2024 type: number name: type: string description: The cardholder's name on the card. example: John Doe address: description: The card's billing address. example: 1234 Main St, Anytown, USA, 12345 type: string postalCode: description: The card's billing address ZIP or postal code. example: '12345' type: string commercialCardCode: description: >- The commercial card code identifies the type of business credit card being used (purchase, corporate, or business) for Visa and Mastercard transactions only. When provided, this code may qualify the transaction for lower processing fees compared to the standard rates that apply when no code is specified. example: corporate type: string transactionMode: description: >- Indicates whether this credit card transaction came from a card swipe (`card_present`) or not (`card_not_present`). example: card_not_present type: string enum: - card_not_present - card_present default: card_not_present transactionType: description: >- The QBMS transaction type from which the current transaction data originated. example: charge type: string enum: - authorization - capture - charge - refund - voice_authorization required: - number - expirationMonth - expirationYear - name additionalProperties: false response: description: >- The transaction response data for this credit card transaction when using QuickBooks Merchant Services (QBMS). type: object properties: statusCode: description: >- The status code returned in the original QBMS transaction response for this credit card transaction. example: 0 type: number statusMessage: type: string description: >- The status message returned in the original QBMS transaction response for this credit card transaction. example: Success creditCardTransactionId: type: string description: >- The ID returned from the credit card processor for this credit card transaction. example: '1234567890' merchantAccountNumber: type: string description: >- The QBMS account number of the merchant who is running this transaction using the customer's credit card. example: '1234567890' authorizationCode: description: >- The authorization code returned from the credit card processor to indicate that this charge will be paid by the card issuer. example: '1234567890' type: string avsStreetStatus: description: >- Indicates whether the street address supplied in the transaction request matches the customer's address on file at the card issuer. example: pass type: string enum: - fail - not_available - pass avsZipStatus: description: >- Indicates whether the customer postal ZIP code supplied in the transaction request matches the customer's postal code recognized at the card issuer. example: pass type: string enum: - fail - not_available - pass cardSecurityCodeMatch: description: >- Indicates whether the card security code supplied in the transaction request matches the card security code recognized for that credit card number at the card issuer. example: pass type: string enum: - fail - not_available - pass reconBatchId: description: >- An internal ID returned by QuickBooks Merchant Services (QBMS) from the transaction request, needed for the QuickBooks reconciliation feature. example: '1234567890' type: string paymentGroupingCode: description: >- An internal code returned by QuickBooks Merchant Services (QBMS) from the transaction request, needed for the QuickBooks reconciliation feature. example: 2 type: number paymentStatus: description: >- Indicates whether this credit card transaction is known to have been successfully processed by the card issuer. example: completed type: string enum: - completed - unknown transactionAuthorizedAt: type: string description: >- The date and time when the credit card processor authorized this credit card transaction. example: 2024-01-01T12:34:56.000Z transactionAuthorizationStamp: description: >- An internal value for this credit card transaction, needed for the QuickBooks reconciliation feature. example: 2 type: number clientTransactionId: description: >- A value returned from QBMS transactions for future use by the QuickBooks Reconciliation feature. example: '1234567890' type: string required: - statusCode - statusMessage - creditCardTransactionId - merchantAccountNumber - paymentStatus - transactionAuthorizedAt additionalProperties: false additionalProperties: false exchangeRate: description: >- The market exchange rate between this credit card refund'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: 1.2345 type: number externalId: type: string format: uuid description: >- 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. **IMPORTANT**: This field must be formatted as a valid GUID; otherwise, QuickBooks will return an error. example: 12345678-abcd-1234-abcd-1234567890ab refundAppliedToTransactions: minItems: 1 type: array items: type: object properties: transactionId: type: string maxLength: 36 description: >- The ID of the credit transaction being refunded by this credit card refund. example: 123ABC-1234567890 refundAmount: type: string description: >- The monetary amount to refund from the linked credit transaction within this credit transaction, represented as a decimal string. Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45"). example: '15.00' required: - transactionId - refundAmount additionalProperties: false description: >- The credit transactions to refund in this credit card refund. Each entry links this credit card refund to an existing credit (for example, a credit memo or unused receive-payment credit). **IMPORTANT**: The `refundAmount` for each linked credit cannot exceed that credit's remaining balance, and the combined `refundAmount` across all links cannot exceed this credit card refund's `totalAmount`. required: - customerId - transactionDate - refundAppliedToTransactions additionalProperties: false responses: '200': description: Returns the newly created credit card refund. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_credit_card_refund' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const creditCardRefund = await conductor.qbd.creditCardRefunds.create({ customerId: '80000001-1234567890', refundAppliedToTransactions: [{ refundAmount: '15.00', transactionId: '123ABC-1234567890' }], transactionDate: '2024-10-01', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(creditCardRefund.id); - lang: Python source: |- import os from datetime import date from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) credit_card_refund = conductor.qbd.credit_card_refunds.create( customer_id="80000001-1234567890", refund_applied_to_transactions=[{ "refund_amount": "15.00", "transaction_id": "123ABC-1234567890", }], transaction_date=date.fromisoformat("2024-10-01"), conductor_end_user_id="end_usr_1234567abcdefg", ) print(credit_card_refund.id) /quickbooks-desktop/credit-card-refunds/{id}: get: summary: Retrieve a credit card refund description: >- Retrieves a credit card refund by ID. **IMPORTANT:** If you need to fetch multiple specific credit card refunds 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. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the credit card refund to retrieve. example: 123ABC-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the credit card refund to retrieve. responses: '200': description: Returns the specified credit card refund. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_credit_card_refund' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const creditCardRefund = await conductor.qbd.creditCardRefunds.retrieve('123ABC-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(creditCardRefund.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) credit_card_refund = conductor.qbd.credit_card_refunds.retrieve( id="123ABC-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(credit_card_refund.id) delete: summary: Delete a credit card refund description: >- Permanently deletes a credit card refund. The deletion will fail if the credit card refund is currently in use or has any linked transactions that are in use. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the credit card refund to delete. example: 123ABC-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the credit card refund to delete. responses: '200': description: >- Returns a confirmation of the deletion with the ID of the deleted credit card refund. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: id: type: string description: >- The QuickBooks-assigned unique identifier of the deleted credit card refund. example: 123ABC-1234567890 objectType: description: >- The type of object. This value is always `"qbd_credit_card_refund"`. example: qbd_credit_card_refund type: string const: qbd_credit_card_refund refNumber: anyOf: - type: string - type: 'null' description: >- The case-sensitive user-defined reference number of the deleted credit card refund. example: REFUND-1234 deleted: type: boolean description: Indicates whether the credit card refund was deleted. example: true required: - id - objectType - refNumber - deleted additionalProperties: false x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const creditCardRefund = await conductor.qbd.creditCardRefunds.delete('123ABC-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(creditCardRefund.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) credit_card_refund = conductor.qbd.credit_card_refunds.delete( id="123ABC-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(credit_card_refund.id) /quickbooks-desktop/credit-card-refunds/{id}/void: post: summary: Void a credit card refund description: >- Voids a credit card refund by setting its amount to zero while keeping a record of it in QuickBooks. The void will fail if the credit card refund is currently in use or has any linked transactions that are in use. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the credit card refund to void. example: 123ABC-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the credit card refund to void. responses: '200': description: >- Returns a confirmation of the void with the ID of the voided credit card refund. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: id: type: string description: >- The QuickBooks-assigned unique identifier of the voided credit card refund. example: 123ABC-1234567890 objectType: description: >- The type of object. This value is always `"qbd_credit_card_refund"`. example: qbd_credit_card_refund type: string const: qbd_credit_card_refund createdAt: anyOf: - type: string - type: 'null' description: >- The date and time when this credit card refund 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. example: 2025-01-01T12:34:56.000Z updatedAt: anyOf: - type: string - type: 'null' description: >- The date and time when this credit card refund 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. example: 2025-02-01T12:34:56.000Z refNumber: anyOf: - type: string - type: 'null' description: >- The case-sensitive user-defined reference number of the voided credit card refund. example: REFUND-1234 voided: type: boolean description: Indicates whether the credit card refund was voided. example: true required: - id - objectType - createdAt - updatedAt - refNumber - voided additionalProperties: false x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const response = await conductor.qbd.creditCardRefunds.void('123ABC-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(response.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) response = conductor.qbd.credit_card_refunds.void( id="123ABC-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(response.id) /quickbooks-desktop/credit-memos: get: summary: List all credit memos description: >- Returns a list of credit memos. Use the `cursor` parameter to paginate through the results. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: query name: ids schema: description: >- Filter for specific credit memos 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 type: array items: type: string description: >- Filter for specific credit memos 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. - in: query name: refNumbers schema: description: >- Filter for specific credit memos 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: - CREDIT MEMO-1234 type: array items: type: string description: >- Filter for specific credit memos 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. - in: query name: limit schema: default: 150 description: >- 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. example: 150 type: integer minimum: 1 maximum: 150 description: >- 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. - in: query name: cursor schema: description: >- 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 type: string description: >- 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. - in: query name: updatedAfter schema: description: >- Filter for credit memos 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. example: 2025-01-01T12:34:56.000Z type: string description: >- Filter for credit memos 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. - in: query name: updatedBefore schema: description: >- Filter for credit memos 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. example: 2025-02-01T12:34:56.000Z type: string description: >- Filter for credit memos 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. - in: query name: transactionDateFrom schema: description: >- Filter for credit memos 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-01` → `2025-01-01T00:00:00`). example: '2025-01-01' type: string format: date description: >- Filter for credit memos 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-01` → `2025-01-01T00:00:00`). - in: query name: transactionDateTo schema: description: >- Filter for credit memos 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-01` → `2025-01-01T23:59:59`). example: '2025-02-01' type: string format: date description: >- Filter for credit memos 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-01` → `2025-01-01T23:59:59`). - in: query name: customerIds schema: description: >- Filter for credit memos created for these customers. These are the customers who are owed money. example: - 80000001-1234567890 type: array items: type: string description: >- Filter for credit memos created for these customers. These are the customers who are owed money. - in: query name: accountIds schema: description: Filter for credit memos associated with these accounts. example: - 80000001-1234567890 type: array items: type: string description: Filter for credit memos associated with these accounts. - in: query name: refNumberContains schema: description: >- Filter for credit memos whose `refNumber` contains this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberStartsWith` or `refNumberEndsWith`. example: CM-1234 type: string description: >- Filter for credit memos whose `refNumber` contains this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberStartsWith` or `refNumberEndsWith`. - in: query name: refNumberStartsWith schema: description: >- Filter for credit memos whose `refNumber` starts with this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberContains` or `refNumberEndsWith`. example: CM type: string description: >- Filter for credit memos whose `refNumber` starts with this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberContains` or `refNumberEndsWith`. - in: query name: refNumberEndsWith schema: description: >- Filter for credit memos whose `refNumber` ends with this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberContains` or `refNumberStartsWith`. example: '1234' type: string description: >- Filter for credit memos whose `refNumber` ends with this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberContains` or `refNumberStartsWith`. - in: query name: refNumberFrom schema: description: >- Filter for credit memos 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: CM-0001 type: string description: >- Filter for credit memos 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. - in: query name: refNumberTo schema: description: >- Filter for credit memos 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: CM-9999 type: string description: >- Filter for credit memos 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. - in: query name: currencyIds schema: description: Filter for credit memos in these currencies. example: - 80000001-1234567890 type: array items: type: string description: Filter for credit memos in these currencies. - in: query name: includeLineItems schema: description: Whether to include line items in the response. Defaults to `true`. example: true type: boolean default: true description: Whether to include line items in the response. Defaults to `true`. - in: query name: includeLinkedTransactions schema: description: >- Whether to include linked transactions in the response. Defaults to `false`. For example, a payment linked to the corresponding credit memo. example: false type: boolean default: false description: >- Whether to include linked transactions in the response. Defaults to `false`. For example, a payment linked to the corresponding credit memo. responses: '200': description: Returns a list of credit memos. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: objectType: description: The type of object. This value is always `"list"`. example: list type: string const: list url: type: string description: The endpoint URL where this list can be accessed. example: /v1/quickbooks-desktop/credit-memos data: type: array items: $ref: '#/components/schemas/qbd_credit_memo' description: The array of credit memos. nextCursor: anyOf: - type: string - type: 'null' description: >- The `nextCursor` is a pagination token returned in the response when you use the `limit` parameter in your request. To retrieve subsequent pages of results, include this token as the value of the `cursor` request parameter in your following API calls. **NOTE**: The `nextCursor` value remains constant throughout the pagination process for a specific list instance; continue to use the same `nextCursor` token in each request to fetch additional pages. example: 12345678-abcd-abcd-example-1234567890ab remainingCount: anyOf: - type: number - type: 'null' description: The number of objects remaining to be fetched. example: 10 hasMore: type: boolean description: Indicates whether there are more objects to be fetched. required: - objectType - url - data - nextCursor - remainingCount - hasMore additionalProperties: false x-codeSamples: - lang: JavaScript source: |- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); // Automatically fetches more pages as needed. for await (const creditMemo of conductor.qbd.creditMemos.list({ conductorEndUserId: 'end_usr_1234567abcdefg', })) { console.log(creditMemo.id); } - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) page = conductor.qbd.credit_memos.list( conductor_end_user_id="end_usr_1234567abcdefg", ) page = page.data[0] print(page.id) post: summary: Create a credit memo description: Creates a new credit memo. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. requestBody: required: true content: application/json: schema: type: object properties: customerId: description: >- The customer or customer-job associated with this credit memo. example: 80000001-1234567890 type: string maxLength: 36 classId: description: >- The credit memo'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 credit memo's line items unless overridden at the line item level. example: 80000001-1234567890 type: string maxLength: 36 receivablesAccountId: description: >- The Accounts-Receivable (A/R) account to which this credit memo is assigned, used to track the amount owed. If omitted, QuickBooks Desktop uses the default A/R account configured in the company file. **IMPORTANT**: If this credit memo is linked to other transactions, this A/R account must match the `receivablesAccount` used in all linked transactions. example: 80000001-1234567890 type: string maxLength: 36 documentTemplateId: description: >- The predefined template in QuickBooks that determines the layout and formatting for this credit memo when printed or displayed. example: 80000001-1234567890 type: string maxLength: 36 transactionDate: type: string format: date description: >- The date of this credit memo, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-01' refNumber: description: >- The case-sensitive user-defined reference number for this credit memo, 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. When left blank in this create request, this field will be left blank in QuickBooks (i.e., it does *not* auto-increment). Maximum length: 11 characters. example: CM-1234 type: string maxLength: 11 billingAddress: description: The credit memo's billing address. type: object properties: line1: description: >- The first line of the address (e.g., street, PO Box, or company name). Maximum length: 41 characters. example: Conductor Labs Inc. type: string maxLength: 41 line2: description: >- The second line of the address, if needed (e.g., apartment, suite, unit, or building). Maximum length: 41 characters. example: 540 Market St. type: string maxLength: 41 line3: description: |- The third line of the address, if needed. Maximum length: 41 characters. example: Suite 100 type: string maxLength: 41 line4: description: |- The fourth line of the address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 line5: description: |- The fifth line of the address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 city: description: >- The city, district, suburb, town, or village name of the address. Maximum length: 31 characters. example: San Francisco type: string maxLength: 31 state: description: >- The state, county, province, or region name of the address. Maximum length: 21 characters. example: CA type: string maxLength: 21 postalCode: description: |- The postal code or ZIP code of the address. Maximum length: 13 characters. example: '94110' type: string maxLength: 13 country: description: The country name of the address. example: United States type: string note: description: >- A note written at the bottom of the address in the form in which it appears, such as the invoice form. example: Conductor HQ type: string additionalProperties: false shippingAddress: description: The credit memo's shipping address. type: object properties: line1: description: >- The first line of the address (e.g., street, PO Box, or company name). Maximum length: 41 characters. example: Conductor Labs Inc. type: string maxLength: 41 line2: description: >- The second line of the address, if needed (e.g., apartment, suite, unit, or building). Maximum length: 41 characters. example: 540 Market St. type: string maxLength: 41 line3: description: |- The third line of the address, if needed. Maximum length: 41 characters. example: Suite 100 type: string maxLength: 41 line4: description: |- The fourth line of the address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 line5: description: |- The fifth line of the address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 city: description: >- The city, district, suburb, town, or village name of the address. Maximum length: 31 characters. example: San Francisco type: string maxLength: 31 state: description: >- The state, county, province, or region name of the address. Maximum length: 21 characters. example: CA type: string maxLength: 21 postalCode: description: |- The postal code or ZIP code of the address. Maximum length: 13 characters. example: '94110' type: string maxLength: 13 country: description: The country name of the address. example: United States type: string note: description: >- A note written at the bottom of the address in the form in which it appears, such as the invoice form. example: Conductor HQ type: string additionalProperties: false isPending: description: Indicates whether this credit memo has not been completed. example: false type: boolean purchaseOrderNumber: description: >- The customer's Purchase Order (PO) number associated with this credit memo. This field is often used to cross-reference the credit memo with the customer's purchasing system. Maximum length: 25 characters. example: PO-1234 type: string maxLength: 25 termsId: description: >- The credit memo's payment terms, defining when payment is due and any applicable discounts. example: 80000001-1234567890 type: string maxLength: 36 dueDate: description: >- The date by which this credit memo must be paid, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-31' type: string format: date salesRepresentativeId: description: >- The credit memo's sales representative. Sales representatives can be employees, vendors, or other names in QuickBooks. example: 80000001-1234567890 type: string maxLength: 36 shipmentOrigin: description: >- The origin location from where the product associated with this credit memo 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. example: San Francisco, CA type: string maxLength: 13 shippingDate: description: >- The date when the products or services for this credit memo were shipped or are expected to be shipped, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-01' type: string format: date shippingMethodId: description: >- The shipping method used for this credit memo, such as standard mail or overnight delivery. example: 80000001-1234567890 type: string maxLength: 36 salesTaxItemId: description: >- The sales-tax item used to calculate the actual tax amount for this credit memo's transactions by applying a specific tax rate collected for a single tax agency. Unlike `salesTaxCode`, which only indicates general taxability, this field drives the actual tax calculation and reporting. example: 80000001-1234567890 type: string maxLength: 36 memo: description: >- A memo or note for this credit memo that appears in the account register and customer register, but not on the credit memo itself. example: Customer refund for damaged shipment type: string customerMessageId: description: The message to display to the customer on the credit memo. example: 80000001-1234567890 type: string maxLength: 36 isQueuedForPrint: type: boolean description: >- Indicates whether this credit memo is included in the queue of documents for QuickBooks to print. example: true isQueuedForEmail: description: >- Indicates whether this credit memo is included in the queue of documents for QuickBooks to email to the customer. example: true type: boolean salesTaxCodeId: description: >- The sales-tax code for this credit memo, determining whether it is taxable or non-taxable. This can be overridden at the transaction-line level. 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. example: 80000001-1234567890 type: string maxLength: 36 otherCustomField: description: >- A built-in custom field for additional information specific to this credit memo. Unlike the user-defined fields in the `customFields` array, this is a standard QuickBooks field that exists for all credit memos for convenience. Developers often use this field for tracking information that doesn't fit into other standard QuickBooks fields. Unlike `otherCustomField1` and `otherCustomField2`, which are line item fields, this exists at the transaction level. Hidden by default in the QuickBooks UI. example: Special handling required type: string exchangeRate: description: >- The market exchange rate between this credit memo'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: 1.2345 type: number externalId: type: string format: uuid description: >- 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. **IMPORTANT**: This field must be formatted as a valid GUID; otherwise, QuickBooks will return an error. example: 12345678-abcd-1234-abcd-1234567890ab lines: description: >- The credit memo's line items, each representing a single product or service sold. **IMPORTANT**: You must specify `lines`, `lineGroups`, or both when creating a credit memo. minItems: 1 type: array items: type: object properties: itemId: description: >- The item associated with this credit memo 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. example: 80000001-1234567890 type: string maxLength: 36 description: description: A description of this credit memo line. example: Return of defective product - Widget Model X123 type: string quantity: description: >- The quantity of the item associated with this credit memo line. This field cannot be cleared. **NOTE**: Do not use this field if the associated item is a discount item. example: 5 type: number unitOfMeasure: description: >- The unit-of-measure used for the `quantity` in this credit memo line. Must be a valid unit within the item's available units of measure. example: Each type: string rate: description: >- The price per unit for this credit memo 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. Decimal string format: up to 5 decimal places and up to 10 digits before the decimal point (for example, "123.45"). example: '10.00' type: string ratePercent: description: >- The price of this credit memo line expressed as a percentage. Typically used for discount or markup items. example: '10.5' type: string priceLevelId: description: >- The price level applied to this credit memo line. This overrides any price level set on the corresponding customer. The resulting credit memo line will not show this price level, only the final `rate` calculated from it. example: 80000001-1234567890 type: string maxLength: 36 classId: description: >- The credit memo 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 credit memo lines unless overridden here, at the transaction line level. example: 80000001-1234567890 type: string maxLength: 36 amount: description: >- The monetary amount of this credit memo 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. Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45"). example: '1000.00' type: string inventorySiteId: description: >- The site location where inventory for the item associated with this credit memo line is stored. example: 80000001-1234567890 type: string maxLength: 36 inventorySiteLocationId: description: >- The specific location (e.g., bin or shelf) within the inventory site where the item associated with this credit memo line is stored. example: 80000001-1234567890 type: string maxLength: 36 serialNumber: description: >- The serial number of the item associated with this credit memo line. This is used for tracking individual units of serialized inventory items. example: SN1234567890 type: string lotNumber: description: >- The lot number of the item associated with this credit memo line. Used for tracking groups of inventory items that are purchased or manufactured together. example: LOT2023-001 type: string serviceDate: description: >- The date on which the service for this credit memo line was or will be performed, in ISO 8601 format (YYYY-MM-DD). This is particularly relevant for service items. example: '2024-03-15' type: string format: date salesTaxCodeId: description: >- The sales-tax code for this credit memo 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. example: 80000001-1234567890 type: string maxLength: 36 overrideItemAccountId: description: >- The account to use for this credit memo line, overriding the default account associated with the item. example: 80000001-1234567890 type: string maxLength: 36 otherCustomField1: description: >- A built-in custom field for additional information specific to this credit memo line. Unlike the user-defined fields in the `customFields` array, this is a standard QuickBooks field that exists for all credit memo 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. example: Special handling required type: string otherCustomField2: description: >- A second built-in custom field for additional information specific to this credit memo line. Unlike the user-defined fields in the `customFields` array, this is a standard QuickBooks field that exists for all credit memo 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. example: Always ship with a spare type: string customFields: description: >- The custom fields for the credit memo line object, added as user-defined data extensions, not included in the standard QuickBooks object. minItems: 1 type: array items: type: object properties: ownerId: type: string description: >- 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. example: '0' name: type: string description: >- 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. example: Customer Rating value: type: string description: >- The value of this custom field. The maximum length depends on the field's data type. example: Premium required: - ownerId - name - value additionalProperties: false additionalProperties: false lineGroups: description: >- The credit memo's line item groups, each representing a predefined set of related items. **IMPORTANT**: You must specify `lines`, `lineGroups`, or both when creating a credit memo. minItems: 1 type: array items: type: object properties: itemGroupId: description: >- The credit memo line group's item group, representing a predefined set of items bundled because they are commonly purchased together or grouped for faster entry. example: 80000001-1234567890 type: string maxLength: 36 quantity: description: >- The quantity of the item group associated with this credit memo line group. This field cannot be cleared. **NOTE**: Do not use this field if the associated item group is a discount item group. example: 5 type: number unitOfMeasure: description: >- The unit-of-measure used for the `quantity` in this credit memo line group. Must be a valid unit within the item's available units of measure. example: Each type: string serviceDate: description: >- The date on which the service for this credit memo line group was or will be performed, in ISO 8601 format (YYYY-MM-DD). This is particularly relevant for service items. example: '2024-03-15' type: string format: date inventorySiteId: description: >- The site location where inventory for the item group associated with this credit memo line group is stored. example: 80000001-1234567890 type: string maxLength: 36 inventorySiteLocationId: description: >- The specific location (e.g., bin or shelf) within the inventory site where the item group associated with this credit memo line group is stored. example: 80000001-1234567890 type: string maxLength: 36 customFields: description: >- The custom fields for the credit memo line group object, added as user-defined data extensions, not included in the standard QuickBooks object. minItems: 1 type: array items: type: object properties: ownerId: type: string description: >- 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. example: '0' name: type: string description: >- 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. example: Customer Rating value: type: string description: >- The value of this custom field. The maximum length depends on the field's data type. example: Premium required: - ownerId - name - value additionalProperties: false required: - itemGroupId additionalProperties: false required: - customerId - transactionDate additionalProperties: false responses: '200': description: Returns the newly created credit memo. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_credit_memo' x-codeSamples: - lang: JavaScript source: |- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const creditMemo = await conductor.qbd.creditMemos.create({ customerId: '80000001-1234567890', transactionDate: '2024-10-01', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(creditMemo.id); - lang: Python source: |- import os from datetime import date from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) credit_memo = conductor.qbd.credit_memos.create( customer_id="80000001-1234567890", transaction_date=date.fromisoformat("2024-10-01"), conductor_end_user_id="end_usr_1234567abcdefg", ) print(credit_memo.id) /quickbooks-desktop/credit-memos/{id}: get: summary: Retrieve a credit memo description: >- Retrieves a credit memo by ID. **IMPORTANT:** If you need to fetch multiple specific credit memos 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. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the credit memo to retrieve. example: 123ABC-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the credit memo to retrieve. responses: '200': description: Returns the specified credit memo. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_credit_memo' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const creditMemo = await conductor.qbd.creditMemos.retrieve('123ABC-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(creditMemo.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) credit_memo = conductor.qbd.credit_memos.retrieve( id="123ABC-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(credit_memo.id) post: summary: Update a credit memo description: >- Updates an existing credit memo. **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. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the credit memo to update. example: 123ABC-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the credit memo to update. requestBody: required: true content: application/json: schema: type: object properties: revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of the credit memo 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. example: '1721172183' customerId: description: >- The customer or customer-job associated with this credit memo. example: 80000001-1234567890 type: string maxLength: 36 classId: description: >- The credit memo'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 credit memo's line items unless overridden at the line item level. example: 80000001-1234567890 type: string maxLength: 36 receivablesAccountId: description: >- The Accounts-Receivable (A/R) account to which this credit memo is assigned, used to track the amount owed. If omitted, QuickBooks Desktop uses the default A/R account configured in the company file. **IMPORTANT**: If this credit memo is linked to other transactions, this A/R account must match the `receivablesAccount` used in all linked transactions. example: 80000001-1234567890 type: string maxLength: 36 documentTemplateId: description: >- The predefined template in QuickBooks that determines the layout and formatting for this credit memo when printed or displayed. example: 80000001-1234567890 type: string maxLength: 36 transactionDate: description: >- The date of this credit memo, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-01' type: string format: date refNumber: description: >- The case-sensitive user-defined reference number for this credit memo, 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. example: CM-1234 type: string maxLength: 11 billingAddress: description: The credit memo's billing address. type: object properties: line1: description: >- The first line of the address (e.g., street, PO Box, or company name). Maximum length: 41 characters. example: Conductor Labs Inc. type: string maxLength: 41 line2: description: >- The second line of the address, if needed (e.g., apartment, suite, unit, or building). Maximum length: 41 characters. example: 540 Market St. type: string maxLength: 41 line3: description: |- The third line of the address, if needed. Maximum length: 41 characters. example: Suite 100 type: string maxLength: 41 line4: description: |- The fourth line of the address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 line5: description: |- The fifth line of the address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 city: description: >- The city, district, suburb, town, or village name of the address. Maximum length: 31 characters. example: San Francisco type: string maxLength: 31 state: description: >- The state, county, province, or region name of the address. Maximum length: 21 characters. example: CA type: string maxLength: 21 postalCode: description: |- The postal code or ZIP code of the address. Maximum length: 13 characters. example: '94110' type: string maxLength: 13 country: description: The country name of the address. example: United States type: string note: description: >- A note written at the bottom of the address in the form in which it appears, such as the invoice form. example: Conductor HQ type: string additionalProperties: false shippingAddress: description: The credit memo's shipping address. type: object properties: line1: description: >- The first line of the address (e.g., street, PO Box, or company name). Maximum length: 41 characters. example: Conductor Labs Inc. type: string maxLength: 41 line2: description: >- The second line of the address, if needed (e.g., apartment, suite, unit, or building). Maximum length: 41 characters. example: 540 Market St. type: string maxLength: 41 line3: description: |- The third line of the address, if needed. Maximum length: 41 characters. example: Suite 100 type: string maxLength: 41 line4: description: |- The fourth line of the address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 line5: description: |- The fifth line of the address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 city: description: >- The city, district, suburb, town, or village name of the address. Maximum length: 31 characters. example: San Francisco type: string maxLength: 31 state: description: >- The state, county, province, or region name of the address. Maximum length: 21 characters. example: CA type: string maxLength: 21 postalCode: description: |- The postal code or ZIP code of the address. Maximum length: 13 characters. example: '94110' type: string maxLength: 13 country: description: The country name of the address. example: United States type: string note: description: >- A note written at the bottom of the address in the form in which it appears, such as the invoice form. example: Conductor HQ type: string additionalProperties: false isPending: description: Indicates whether this credit memo has not been completed. example: false type: boolean purchaseOrderNumber: description: >- The customer's Purchase Order (PO) number associated with this credit memo. This field is often used to cross-reference the credit memo with the customer's purchasing system. Maximum length: 25 characters. example: PO-1234 type: string maxLength: 25 termsId: description: >- The credit memo's payment terms, defining when payment is due and any applicable discounts. example: 80000001-1234567890 type: string maxLength: 36 dueDate: description: >- The date by which this credit memo must be paid, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-31' type: string format: date salesRepresentativeId: description: >- The credit memo's sales representative. Sales representatives can be employees, vendors, or other names in QuickBooks. example: 80000001-1234567890 type: string maxLength: 36 shipmentOrigin: description: >- The origin location from where the product associated with this credit memo 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. example: San Francisco, CA type: string maxLength: 13 shippingDate: description: >- The date when the products or services for this credit memo were shipped or are expected to be shipped, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-01' type: string format: date shippingMethodId: description: >- The shipping method used for this credit memo, such as standard mail or overnight delivery. example: 80000001-1234567890 type: string maxLength: 36 salesTaxItemId: description: >- The sales-tax item used to calculate the actual tax amount for this credit memo's transactions by applying a specific tax rate collected for a single tax agency. Unlike `salesTaxCode`, which only indicates general taxability, this field drives the actual tax calculation and reporting. example: 80000001-1234567890 type: string maxLength: 36 memo: description: >- A memo or note for this credit memo that appears in the account register and customer register, but not on the credit memo itself. example: Customer refund for damaged shipment type: string customerMessageId: description: The message to display to the customer on the credit memo. example: 80000001-1234567890 type: string maxLength: 36 isQueuedForPrint: type: boolean description: >- Indicates whether this credit memo is included in the queue of documents for QuickBooks to print. example: true isQueuedForEmail: description: >- Indicates whether this credit memo is included in the queue of documents for QuickBooks to email to the customer. example: true type: boolean salesTaxCodeId: description: >- The sales-tax code for this credit memo, determining whether it is taxable or non-taxable. This can be overridden at the transaction-line level. 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. example: 80000001-1234567890 type: string maxLength: 36 otherCustomField: description: >- A built-in custom field for additional information specific to this credit memo. Unlike the user-defined fields in the `customFields` array, this is a standard QuickBooks field that exists for all credit memos for convenience. Developers often use this field for tracking information that doesn't fit into other standard QuickBooks fields. Unlike `otherCustomField1` and `otherCustomField2`, which are line item fields, this exists at the transaction level. Hidden by default in the QuickBooks UI. example: Special handling required type: string exchangeRate: description: >- The market exchange rate between this credit memo'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: 1.2345 type: number lines: description: >- The credit memo's line items, each representing a single product or service sold. **IMPORTANT**: 1. Including this array in your update request will **REPLACE** all existing line items for the credit memo with this array. To keep any existing line items, you must include them in this array even if they have not changed. **Any line items not included will be removed.** 2. To add a new line item, include it here with the `id` field set to `-1`. 3. If you do not wish to modify any line items, omit this field entirely to keep them unchanged. minItems: 1 type: array items: type: object properties: id: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of an existing credit memo line you wish to retain or update. **IMPORTANT**: Set this field to `-1` for new credit memo lines you wish to add. example: 456DEF-1234567890 itemId: description: >- The item associated with this credit memo 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. example: 80000001-1234567890 type: string maxLength: 36 description: description: A description of this credit memo line. example: Return of defective product - Widget Model X123 type: string quantity: description: >- The quantity of the item associated with this credit memo line. This field cannot be cleared. **NOTE**: Do not use this field if the associated item is a discount item. example: 5 type: number unitOfMeasure: description: >- The unit-of-measure used for the `quantity` in this credit memo line. Must be a valid unit within the item's available units of measure. example: Each type: string overrideUnitOfMeasureSetId: description: >- Specifies an alternative unit-of-measure set when updating this credit memo 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. example: 80000001-1234567890 type: string maxLength: 36 rate: description: >- The price per unit for this credit memo 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. Decimal string format: up to 5 decimal places and up to 10 digits before the decimal point (for example, "123.45"). example: '10.00' type: string ratePercent: description: >- The price of this credit memo line expressed as a percentage. Typically used for discount or markup items. example: '10.5' type: string priceLevelId: description: >- The price level applied to this credit memo line. This overrides any price level set on the corresponding customer. The resulting credit memo line will not show this price level, only the final `rate` calculated from it. example: 80000001-1234567890 type: string maxLength: 36 classId: description: >- The credit memo 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 credit memo lines unless overridden here, at the transaction line level. example: 80000001-1234567890 type: string maxLength: 36 amount: description: >- The monetary amount of this credit memo 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. Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45"). example: '1000.00' type: string inventorySiteId: description: >- The site location where inventory for the item associated with this credit memo line is stored. example: 80000001-1234567890 type: string maxLength: 36 inventorySiteLocationId: description: >- The specific location (e.g., bin or shelf) within the inventory site where the item associated with this credit memo line is stored. example: 80000001-1234567890 type: string maxLength: 36 serialNumber: description: >- The serial number of the item associated with this credit memo line. This is used for tracking individual units of serialized inventory items. example: SN1234567890 type: string lotNumber: description: >- The lot number of the item associated with this credit memo line. Used for tracking groups of inventory items that are purchased or manufactured together. example: LOT2023-001 type: string serviceDate: description: >- The date on which the service for this credit memo line was or will be performed, in ISO 8601 format (YYYY-MM-DD). This is particularly relevant for service items. example: '2024-03-15' type: string format: date salesTaxCodeId: description: >- The sales-tax code for this credit memo 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. example: 80000001-1234567890 type: string maxLength: 36 overrideItemAccountId: description: >- The account to use for this credit memo line, overriding the default account associated with the item. example: 80000001-1234567890 type: string maxLength: 36 otherCustomField1: description: >- A built-in custom field for additional information specific to this credit memo line. Unlike the user-defined fields in the `customFields` array, this is a standard QuickBooks field that exists for all credit memo 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. example: Special handling required type: string otherCustomField2: description: >- A second built-in custom field for additional information specific to this credit memo line. Unlike the user-defined fields in the `customFields` array, this is a standard QuickBooks field that exists for all credit memo 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. example: Always ship with a spare type: string required: - id additionalProperties: false lineGroups: description: >- The credit memo's line item groups, each representing a predefined set of related items. **IMPORTANT**: 1. Including this array in your update request will **REPLACE** all existing line item groups for the credit memo with this array. To keep any existing line item groups, you must include them in this array even if they have not changed. **Any line item groups not included will be removed.** 2. To add a new line item group, include it here with the `id` field set to `-1`. 3. If you do not wish to modify any line item groups, omit this field entirely to keep them unchanged. minItems: 1 type: array items: type: object properties: id: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of an existing credit memo line group you wish to retain or update. **IMPORTANT**: Set this field to `-1` for new credit memo line groups you wish to add. example: 456DEF-1234567890 itemGroupId: description: >- The credit memo line group's item group, representing a predefined set of items bundled because they are commonly purchased together or grouped for faster entry. example: 80000001-1234567890 type: string maxLength: 36 quantity: description: >- The quantity of the item group associated with this credit memo line group. This field cannot be cleared. **NOTE**: Do not use this field if the associated item group is a discount item group. example: 5 type: number unitOfMeasure: description: >- The unit-of-measure used for the `quantity` in this credit memo line group. Must be a valid unit within the item's available units of measure. example: Each type: string overrideUnitOfMeasureSetId: description: >- Specifies an alternative unit-of-measure set when updating this credit memo 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. example: 80000001-1234567890 type: string maxLength: 36 lines: description: >- The credit memo line group's line items, each representing a single product or service sold. **IMPORTANT**: 1. Including this array in your update request will **REPLACE** all existing line items for the credit memo line group with this array. To keep any existing line items, you must include them in this array even if they have not changed. **Any line items not included will be removed.** 2. To add a new line item, include it here with the `id` field set to `-1`. 3. If you do not wish to modify any line items, omit this field entirely to keep them unchanged. minItems: 1 type: array items: type: object properties: id: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of an existing credit memo line you wish to retain or update. **IMPORTANT**: Set this field to `-1` for new credit memo lines you wish to add. example: 456DEF-1234567890 itemId: description: >- The item associated with this credit memo 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. example: 80000001-1234567890 type: string maxLength: 36 description: description: A description of this credit memo line. example: Return of defective product - Widget Model X123 type: string quantity: description: >- The quantity of the item associated with this credit memo line. This field cannot be cleared. **NOTE**: Do not use this field if the associated item is a discount item. example: 5 type: number unitOfMeasure: description: >- The unit-of-measure used for the `quantity` in this credit memo line. Must be a valid unit within the item's available units of measure. example: Each type: string overrideUnitOfMeasureSetId: description: >- Specifies an alternative unit-of-measure set when updating this credit memo 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. example: 80000001-1234567890 type: string maxLength: 36 rate: description: >- The price per unit for this credit memo 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. Decimal string format: up to 5 decimal places and up to 10 digits before the decimal point (for example, "123.45"). example: '10.00' type: string ratePercent: description: >- The price of this credit memo line expressed as a percentage. Typically used for discount or markup items. example: '10.5' type: string priceLevelId: description: >- The price level applied to this credit memo line. This overrides any price level set on the corresponding customer. The resulting credit memo line will not show this price level, only the final `rate` calculated from it. example: 80000001-1234567890 type: string maxLength: 36 classId: description: >- The credit memo 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 credit memo lines unless overridden here, at the transaction line level. example: 80000001-1234567890 type: string maxLength: 36 amount: description: >- The monetary amount of this credit memo 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. Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45"). example: '1000.00' type: string inventorySiteId: description: >- The site location where inventory for the item associated with this credit memo line is stored. example: 80000001-1234567890 type: string maxLength: 36 inventorySiteLocationId: description: >- The specific location (e.g., bin or shelf) within the inventory site where the item associated with this credit memo line is stored. example: 80000001-1234567890 type: string maxLength: 36 serialNumber: description: >- The serial number of the item associated with this credit memo line. This is used for tracking individual units of serialized inventory items. example: SN1234567890 type: string lotNumber: description: >- The lot number of the item associated with this credit memo line. Used for tracking groups of inventory items that are purchased or manufactured together. example: LOT2023-001 type: string serviceDate: description: >- The date on which the service for this credit memo line was or will be performed, in ISO 8601 format (YYYY-MM-DD). This is particularly relevant for service items. example: '2024-03-15' type: string format: date salesTaxCodeId: description: >- The sales-tax code for this credit memo 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. example: 80000001-1234567890 type: string maxLength: 36 overrideItemAccountId: description: >- The account to use for this credit memo line, overriding the default account associated with the item. example: 80000001-1234567890 type: string maxLength: 36 otherCustomField1: description: >- A built-in custom field for additional information specific to this credit memo line. Unlike the user-defined fields in the `customFields` array, this is a standard QuickBooks field that exists for all credit memo 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. example: Special handling required type: string otherCustomField2: description: >- A second built-in custom field for additional information specific to this credit memo line. Unlike the user-defined fields in the `customFields` array, this is a standard QuickBooks field that exists for all credit memo 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. example: Always ship with a spare type: string required: - id additionalProperties: false required: - id additionalProperties: false required: - revisionNumber additionalProperties: false responses: '200': description: Returns the updated credit memo. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_credit_memo' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const creditMemo = await conductor.qbd.creditMemos.update('123ABC-1234567890', { revisionNumber: '1721172183', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(creditMemo.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) credit_memo = conductor.qbd.credit_memos.update( id="123ABC-1234567890", revision_number="1721172183", conductor_end_user_id="end_usr_1234567abcdefg", ) print(credit_memo.id) delete: summary: Delete a credit memo description: >- Permanently deletes a credit memo. The deletion will fail if the credit memo is currently in use or has any linked transactions that are in use. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the credit memo to delete. example: 123ABC-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the credit memo to delete. responses: '200': description: >- Returns a confirmation of the deletion with the ID of the deleted credit memo. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: id: type: string description: >- The QuickBooks-assigned unique identifier of the deleted credit memo. example: 123ABC-1234567890 objectType: description: >- The type of object. This value is always `"qbd_credit_memo"`. example: qbd_credit_memo type: string const: qbd_credit_memo refNumber: anyOf: - type: string - type: 'null' description: >- The case-sensitive user-defined reference number of the deleted credit memo. example: CM-1234 deleted: type: boolean description: Indicates whether the credit memo was deleted. example: true required: - id - objectType - refNumber - deleted additionalProperties: false x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const creditMemo = await conductor.qbd.creditMemos.delete('123ABC-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(creditMemo.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) credit_memo = conductor.qbd.credit_memos.delete( id="123ABC-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(credit_memo.id) /quickbooks-desktop/credit-memos/{id}/void: post: summary: Void a credit memo description: >- Voids a credit memo by setting its amount to zero while keeping a record of it in QuickBooks. The void will fail if the credit memo is currently in use or has any linked transactions that are in use. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the credit memo to void. example: 123ABC-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the credit memo to void. responses: '200': description: >- Returns a confirmation of the void with the ID of the voided credit memo. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: id: type: string description: >- The QuickBooks-assigned unique identifier of the voided credit memo. example: 123ABC-1234567890 objectType: description: >- The type of object. This value is always `"qbd_credit_memo"`. example: qbd_credit_memo type: string const: qbd_credit_memo createdAt: anyOf: - type: string - type: 'null' description: >- The date and time when this credit memo 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. example: 2025-01-01T12:34:56.000Z updatedAt: anyOf: - type: string - type: 'null' description: >- The date and time when this credit memo 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. example: 2025-02-01T12:34:56.000Z refNumber: anyOf: - type: string - type: 'null' description: >- The case-sensitive user-defined reference number of the voided credit memo. example: CM-1234 voided: type: boolean description: Indicates whether the credit memo was voided. example: true required: - id - objectType - createdAt - updatedAt - refNumber - voided additionalProperties: false x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const response = await conductor.qbd.creditMemos.void('123ABC-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(response.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) response = conductor.qbd.credit_memos.void( id="123ABC-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(response.id) /quickbooks-desktop/currencies: get: summary: List all currencies description: >- Returns a list of currencies. **NOTE:** QuickBooks Desktop does not support pagination for currencies; hence, there is no `cursor` parameter. Users typically have few currencies. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: query name: ids schema: description: >- Filter for specific currencies 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: - 80000001-1234567890 type: array items: type: string description: >- Filter for specific currencies 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. - in: query name: names schema: description: >- Filter for specific currencies by their name(s), case-insensitive. Like `id`, `name` is a unique identifier for a currency. **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: - United States Dollar type: array items: type: string description: >- Filter for specific currencies by their name(s), case-insensitive. Like `id`, `name` is a unique identifier for a currency. **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. - in: query name: limit schema: description: >- The maximum number of objects to return. **IMPORTANT**: QuickBooks Desktop does not support cursor-based pagination for currencies. 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 currencies without limit, unlike paginated endpoints which default to 150 records. This is acceptable because currencies typically have low record counts. example: 10 type: integer minimum: 1 description: >- The maximum number of objects to return. **IMPORTANT**: QuickBooks Desktop does not support cursor-based pagination for currencies. 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 currencies without limit, unlike paginated endpoints which default to 150 records. This is acceptable because currencies typically have low record counts. - in: query name: status schema: description: Filter for currencies that are active, inactive, or both. example: active type: string enum: - active - all - inactive default: active description: Filter for currencies that are active, inactive, or both. - in: query name: updatedAfter schema: description: >- Filter for currencies 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. example: 2025-01-01T12:34:56.000Z type: string description: >- Filter for currencies 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. - in: query name: updatedBefore schema: description: >- Filter for currencies 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. example: 2025-02-01T12:34:56.000Z type: string description: >- Filter for currencies 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. - in: query name: nameContains schema: description: >- Filter for currencies whose `name` contains this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameStartsWith` or `nameEndsWith`. example: ABC type: string description: >- Filter for currencies whose `name` contains this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameStartsWith` or `nameEndsWith`. - in: query name: nameStartsWith schema: description: >- Filter for currencies whose `name` starts with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameEndsWith`. example: ABC type: string description: >- Filter for currencies whose `name` starts with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameEndsWith`. - in: query name: nameEndsWith schema: description: >- Filter for currencies whose `name` ends with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameStartsWith`. example: ABC type: string description: >- Filter for currencies whose `name` ends with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameStartsWith`. - in: query name: nameFrom schema: description: >- Filter for currencies whose `name` is alphabetically greater than or equal to this value. example: A type: string description: >- Filter for currencies whose `name` is alphabetically greater than or equal to this value. - in: query name: nameTo schema: description: >- Filter for currencies whose `name` is alphabetically less than or equal to this value. example: Z type: string description: >- Filter for currencies whose `name` is alphabetically less than or equal to this value. responses: '200': description: Returns a list of currencies. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: objectType: description: The type of object. This value is always `"list"`. example: list type: string const: list url: type: string description: The endpoint URL where this list can be accessed. example: /v1/quickbooks-desktop/currencies data: type: array items: $ref: '#/components/schemas/qbd_currency' description: The array of currencies. required: - objectType - url - data additionalProperties: false x-codeSamples: - lang: JavaScript source: |- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const currencies = await conductor.qbd.currencies.list({ conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(currencies.data); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) currencies = conductor.qbd.currencies.list( conductor_end_user_id="end_usr_1234567abcdefg", ) print(currencies.data) post: summary: Create a currency description: >- Creates a user-defined currency with the specified name and currency code. Exchange rates for user-defined currencies are not updated automatically by QuickBooks Desktop; update them manually as needed. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. requestBody: required: true content: application/json: schema: type: object properties: name: type: string maxLength: 64 description: >- The case-insensitive unique name of this currency, unique across all currencies. For built-in currencies, the name is the internationally accepted currency name and is not editable. **NOTE**: Currencies do not have a `fullName` field because they are not hierarchical objects, which is why `name` is unique for them but not for objects that have parents. Maximum length: 64 characters. example: United States Dollar isActive: description: >- Indicates whether this currency is active. Inactive objects are typically hidden from views and reports in QuickBooks. Defaults to `true`. example: true default: true type: boolean currencyCode: type: string maxLength: 3 description: >- The internationally accepted currency code used by this currency, typically based on the ISO 4217 standard (for example, USD for US Dollars). Built-in QuickBooks currencies follow ISO 4217. For user-defined currencies, following ISO 4217 is recommended but not required. In many cases, the three-letter code is formed from the country's two-letter internet code plus a currency letter (e.g., BZ + D → BZD for Belize Dollar). Maximum length: 3 characters. example: USD currencyFormat: description: >- Controls how this currency displays thousands separators, grouping, and decimal places. type: object properties: thousandSeparator: description: >- Controls the thousands separator when displaying currency values (for example, "1,000,000"). Defaults to comma. example: comma type: string enum: - apostrophe - comma - period - space default: comma thousandSeparatorGrouping: description: >- Controls how digits are grouped for thousands when displaying currency values (for example, "10,000,000"). example: xx_xxx_xxx type: string enum: - x_xx_xx_xxx - xx_xxx_xxx default: xx_xxx_xxx decimalPlaces: description: >- Controls the number of decimal places displayed for currency values. Use `0` to hide decimals or `2` to display cents. example: '2' type: string enum: - '0' - '2' default: '2' decimalSeparator: description: >- Controls the decimal separator when displaying currency values (for example, "1.00" vs "1,00"). Defaults to period. example: period type: string enum: - comma - period default: period additionalProperties: false required: - name - currencyCode additionalProperties: false responses: '200': description: Returns the newly created currency. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_currency' x-codeSamples: - lang: JavaScript source: |- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const currency = await conductor.qbd.currencies.create({ currencyCode: 'USD', name: 'United States Dollar', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(currency.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) currency = conductor.qbd.currencies.create( currency_code="USD", name="United States Dollar", conductor_end_user_id="end_usr_1234567abcdefg", ) print(currency.id) /quickbooks-desktop/currencies/{id}: get: summary: Retrieve a currency description: >- Retrieves a currency by ID. **IMPORTANT:** If you need to fetch multiple specific currencies 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. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the currency to retrieve. example: 80000001-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the currency to retrieve. responses: '200': description: Returns the specified currency. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_currency' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const currency = await conductor.qbd.currencies.retrieve('80000001-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(currency.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) currency = conductor.qbd.currencies.retrieve( id="80000001-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(currency.id) post: summary: Update a currency description: >- Updates an existing currency. For built-in currencies, only the `isActive` status can be changed; name and currency code are not editable. For user-defined currencies, all fields in this request are editable. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the currency to update. example: 80000001-1234567890 required: true description: The QuickBooks-assigned unique identifier of the currency to update. requestBody: required: true content: application/json: schema: type: object properties: revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of the currency 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. example: '1721172183' name: description: >- The case-insensitive unique name of this currency, unique across all currencies. For built-in currencies, the name is the internationally accepted currency name and is not editable. **NOTE**: Currencies do not have a `fullName` field because they are not hierarchical objects, which is why `name` is unique for them but not for objects that have parents. Maximum length: 64 characters. example: United States Dollar type: string maxLength: 64 isActive: description: >- Indicates whether this currency is active. Inactive objects are typically hidden from views and reports in QuickBooks. Defaults to `true`. example: true type: boolean currencyCode: description: >- The internationally accepted currency code used by this currency, typically based on the ISO 4217 standard (for example, USD for US Dollars). Built-in QuickBooks currencies follow ISO 4217. For user-defined currencies, following ISO 4217 is recommended but not required. In many cases, the three-letter code is formed from the country's two-letter internet code plus a currency letter (e.g., BZ + D → BZD for Belize Dollar). Maximum length: 3 characters. example: USD type: string maxLength: 3 currencyFormat: description: >- Controls how this currency displays thousands separators, grouping, and decimal places. type: object properties: thousandSeparator: description: >- Controls the thousands separator when displaying currency values (for example, "1,000,000"). Defaults to comma. example: comma type: string enum: - apostrophe - comma - period - space thousandSeparatorGrouping: description: >- Controls how digits are grouped for thousands when displaying currency values (for example, "10,000,000"). example: xx_xxx_xxx type: string enum: - x_xx_xx_xxx - xx_xxx_xxx decimalPlaces: description: >- Controls the number of decimal places displayed for currency values. Use `0` to hide decimals or `2` to display cents. example: '2' type: string enum: - '0' - '2' decimalSeparator: description: >- Controls the decimal separator when displaying currency values (for example, "1.00" vs "1,00"). Defaults to period. example: period type: string enum: - comma - period additionalProperties: false required: - revisionNumber additionalProperties: false responses: '200': description: Returns the updated currency. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_currency' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const currency = await conductor.qbd.currencies.update('80000001-1234567890', { revisionNumber: '1721172183', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(currency.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) currency = conductor.qbd.currencies.update( id="80000001-1234567890", revision_number="1721172183", conductor_end_user_id="end_usr_1234567abcdefg", ) print(currency.id) /quickbooks-desktop/customer-types: get: summary: List all customer types description: >- Returns a list of customer types. **NOTE:** QuickBooks Desktop does not support pagination for customer types; hence, there is no `cursor` parameter. Users typically have few customer types. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: query name: ids schema: description: >- Filter for specific customer types 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: - 80000001-1234567890 type: array items: type: string description: >- Filter for specific customer types 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. - in: query name: fullNames schema: description: >- Filter for specific customer types by their full-name(s), case-insensitive. Like `id`, `fullName` is a unique identifier for a customer type, formed by by combining the names of its parent objects with its own `name`, separated by colons. For example, if a customer type is under "Industry" and has the `name` "Healthcare", its `fullName` would be "Industry:Healthcare". **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: - Industry:Healthcare type: array items: type: string description: >- Filter for specific customer types by their full-name(s), case-insensitive. Like `id`, `fullName` is a unique identifier for a customer type, formed by by combining the names of its parent objects with its own `name`, separated by colons. For example, if a customer type is under "Industry" and has the `name` "Healthcare", its `fullName` would be "Industry:Healthcare". **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. - in: query name: limit schema: description: >- The maximum number of objects to return. **IMPORTANT**: QuickBooks Desktop does not support cursor-based pagination for customer types. 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 customer types without limit, unlike paginated endpoints which default to 150 records. This is acceptable because customer types typically have low record counts. example: 10 type: integer minimum: 1 description: >- The maximum number of objects to return. **IMPORTANT**: QuickBooks Desktop does not support cursor-based pagination for customer types. 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 customer types without limit, unlike paginated endpoints which default to 150 records. This is acceptable because customer types typically have low record counts. - in: query name: status schema: description: Filter for customer types that are active, inactive, or both. example: active type: string enum: - active - all - inactive default: active description: Filter for customer types that are active, inactive, or both. - in: query name: updatedAfter schema: description: >- Filter for customer types 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. example: 2025-01-01T12:34:56.000Z type: string description: >- Filter for customer types 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. - in: query name: updatedBefore schema: description: >- Filter for customer types 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. example: 2025-02-01T12:34:56.000Z type: string description: >- Filter for customer types 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. - in: query name: nameContains schema: description: >- Filter for customer types whose `name` contains this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameStartsWith` or `nameEndsWith`. example: ABC type: string description: >- Filter for customer types whose `name` contains this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameStartsWith` or `nameEndsWith`. - in: query name: nameStartsWith schema: description: >- Filter for customer types whose `name` starts with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameEndsWith`. example: ABC type: string description: >- Filter for customer types whose `name` starts with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameEndsWith`. - in: query name: nameEndsWith schema: description: >- Filter for customer types whose `name` ends with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameStartsWith`. example: ABC type: string description: >- Filter for customer types whose `name` ends with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameStartsWith`. - in: query name: nameFrom schema: description: >- Filter for customer types whose `name` is alphabetically greater than or equal to this value. example: A type: string description: >- Filter for customer types whose `name` is alphabetically greater than or equal to this value. - in: query name: nameTo schema: description: >- Filter for customer types whose `name` is alphabetically less than or equal to this value. example: Z type: string description: >- Filter for customer types whose `name` is alphabetically less than or equal to this value. responses: '200': description: Returns a list of customer types. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: objectType: description: The type of object. This value is always `"list"`. example: list type: string const: list url: type: string description: The endpoint URL where this list can be accessed. example: /v1/quickbooks-desktop/customer-types data: type: array items: $ref: '#/components/schemas/qbd_customer_type' description: The array of customer types. required: - objectType - url - data additionalProperties: false x-codeSamples: - lang: JavaScript source: |- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const customerTypes = await conductor.qbd.customerTypes.list({ conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(customerTypes.data); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) customer_types = conductor.qbd.customer_types.list( conductor_end_user_id="end_usr_1234567abcdefg", ) print(customer_types.data) post: summary: Create a customer type description: Creates a new customer type. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. requestBody: required: true content: application/json: schema: type: object properties: name: type: string maxLength: 31 description: >- The case-insensitive name of this customer type. Not guaranteed to be unique because it does not include the names of its hierarchical parent objects like `fullName` does. For example, two customer types could both have the `name` "Healthcare", but they could have unique `fullName` values, such as "Industry:Healthcare" and "Region:Healthcare". Maximum length: 31 characters. example: Healthcare isActive: description: >- Indicates whether this customer type is active. Inactive objects are typically hidden from views and reports in QuickBooks. Defaults to `true`. example: true default: true type: boolean parentId: description: >- The parent customer type one level above this one in the hierarchy. For example, if this customer type has a `fullName` of "Industry:Healthcare", its parent has a `fullName` of "Industry". If this customer type is at the top level, this field will be `null`. example: 80000001-1234567890 type: string maxLength: 36 required: - name additionalProperties: false responses: '200': description: Returns the newly created customer type. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_customer_type' x-codeSamples: - lang: JavaScript source: |- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const customerType = await conductor.qbd.customerTypes.create({ name: 'Healthcare', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(customerType.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) customer_type = conductor.qbd.customer_types.create( name="Healthcare", conductor_end_user_id="end_usr_1234567abcdefg", ) print(customer_type.id) /quickbooks-desktop/customer-types/{id}: get: summary: Retrieve a customer type description: >- Retrieves a customer type by ID. **IMPORTANT:** If you need to fetch multiple specific customer types 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. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the customer type to retrieve. example: 80000001-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the customer type to retrieve. responses: '200': description: Returns the specified customer type. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_customer_type' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const customerType = await conductor.qbd.customerTypes.retrieve('80000001-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(customerType.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) customer_type = conductor.qbd.customer_types.retrieve( id="80000001-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(customer_type.id) /quickbooks-desktop/customers: get: summary: List all customers description: >- 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. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: query name: ids schema: description: >- 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. example: - 80000001-1234567890 type: array items: type: string description: >- 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. - in: query name: fullNames schema: description: >- 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. example: - ABC Corporation:Website Redesign Project type: array items: type: string description: >- 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. - in: query name: limit schema: default: 150 description: >- 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. example: 150 type: integer minimum: 1 maximum: 150 description: >- 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. - in: query name: cursor schema: description: >- 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 type: string description: >- 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. - in: query name: status schema: description: Filter for customers that are active, inactive, or both. example: active type: string enum: - active - all - inactive default: active description: Filter for customers that are active, inactive, or both. - in: query name: updatedAfter schema: description: >- 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. example: 2025-01-01T12:34:56.000Z type: string description: >- 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. - in: query name: updatedBefore schema: description: >- 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. example: 2025-02-01T12:34:56.000Z type: string description: >- 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. - in: query name: nameContains schema: description: >- Filter for customers whose `name` contains this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameStartsWith` or `nameEndsWith`. example: ABC type: string description: >- Filter for customers whose `name` contains this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameStartsWith` or `nameEndsWith`. - in: query name: nameStartsWith schema: description: >- Filter for customers whose `name` starts with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameEndsWith`. example: ABC type: string description: >- Filter for customers whose `name` starts with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameEndsWith`. - in: query name: nameEndsWith schema: description: >- Filter for customers whose `name` ends with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameStartsWith`. example: ABC type: string description: >- Filter for customers whose `name` ends with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameStartsWith`. - in: query name: nameFrom schema: description: >- Filter for customers whose `name` is alphabetically greater than or equal to this value. example: A type: string description: >- Filter for customers whose `name` is alphabetically greater than or equal to this value. - in: query name: nameTo schema: description: >- Filter for customers whose `name` is alphabetically less than or equal to this value. example: Z type: string description: >- Filter for customers whose `name` is alphabetically less than or equal to this value. - in: query name: totalBalance schema: description: >- Filter for customers whose `totalBalance` equals this amount, represented as a decimal string. You can only use one total-balance filter at a time. example: '123.45' type: string description: >- Filter for customers whose `totalBalance` equals this amount, represented as a decimal string. You can only use one total-balance filter at a time. - in: query name: totalBalanceGreaterThan schema: description: >- 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. example: '123.45' type: string description: >- 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. - in: query name: totalBalanceGreaterThanOrEqualTo schema: description: >- 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. example: '123.45' type: string description: >- 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. - in: query name: totalBalanceLessThan schema: description: >- 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. example: '123.45' type: string description: >- 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. - in: query name: totalBalanceLessThanOrEqualTo schema: description: >- 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. example: '123.45' type: string description: >- 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. - in: query name: currencyIds schema: description: Filter for customers in these currencies. example: - 80000001-1234567890 type: array items: type: string description: Filter for customers in these currencies. - in: query name: classIds schema: description: >- Filter for customers of these classes. A class is a way end-users can categorize customers in QuickBooks. example: - 80000001-1234567890 type: array items: type: string description: >- Filter for customers of these classes. A class is a way end-users can categorize customers in QuickBooks. - in: query name: excludeAlternateShippingAddresses schema: description: >- 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). example: true type: boolean default: false description: >- 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). responses: '200': description: Returns a list of customers. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: objectType: description: The type of object. This value is always `"list"`. example: list type: string const: list url: type: string description: The endpoint URL where this list can be accessed. example: /v1/quickbooks-desktop/customers data: type: array items: $ref: '#/components/schemas/qbd_customer' description: The array of customers. nextCursor: anyOf: - type: string - type: 'null' description: >- The `nextCursor` is a pagination token returned in the response when you use the `limit` parameter in your request. To retrieve subsequent pages of results, include this token as the value of the `cursor` request parameter in your following API calls. **NOTE**: The `nextCursor` value remains constant throughout the pagination process for a specific list instance; continue to use the same `nextCursor` token in each request to fetch additional pages. example: 12345678-abcd-abcd-example-1234567890ab remainingCount: anyOf: - type: number - type: 'null' description: The number of objects remaining to be fetched. example: 10 hasMore: type: boolean description: Indicates whether there are more objects to be fetched. required: - objectType - url - data - nextCursor - remainingCount - hasMore additionalProperties: false x-codeSamples: - lang: JavaScript source: |- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); // Automatically fetches more pages as needed. for await (const customer of conductor.qbd.customers.list({ conductorEndUserId: 'end_usr_1234567abcdefg', })) { console.log(customer.id); } - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) page = conductor.qbd.customers.list( conductor_end_user_id="end_usr_1234567abcdefg", ) page = page.data[0] print(page.id) post: summary: Create a customer description: Creates a new customer. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. requestBody: required: true content: application/json: schema: type: object properties: name: type: string maxLength: 41 description: >- The case-insensitive name of this customer. Not guaranteed to be unique because it does not include the names of its hierarchical parent objects like `fullName` does. For example, two customers could both have the `name` "Website Redesign Project", but they could have unique `fullName` values, such as "ABC Corporation:Website Redesign Project" and "Baker:Website Redesign Project". Maximum length: 41 characters. example: Website Redesign Project isActive: description: >- Indicates whether this customer is active. Inactive objects are typically hidden from views and reports in QuickBooks. Defaults to `true`. example: true default: true type: boolean classId: description: >- The customer'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. example: 80000001-1234567890 type: string maxLength: 36 parentId: description: >- The parent customer one level above this one in the hierarchy. For example, if this customer has a `fullName` of "ABC Corporation:Website Redesign Project", its parent has a `fullName` of "ABC Corporation". If this customer is at the top level, this field will be `null`. example: 80000001-1234567890 type: string maxLength: 36 companyName: description: >- The name of the company associated with this customer. This name is used on invoices, checks, and other forms. Maximum length: 41 characters. example: Acme Corporation type: string maxLength: 41 salutation: description: >- The formal salutation title that precedes the name of the contact person for this customer, such as "Mr.", "Ms.", or "Dr.". example: Dr. type: string firstName: description: |- The first name of the contact person for this customer. Maximum length: 25 characters. example: John type: string maxLength: 25 middleName: description: |- The middle name of the contact person for this customer. Maximum length: 5 characters. example: A. type: string maxLength: 5 lastName: description: |- The last name of the contact person for this customer. Maximum length: 25 characters. example: Doe type: string maxLength: 25 jobTitle: description: The job title of the contact person for this customer. example: Purchasing Manager type: string billingAddress: description: The customer's billing address. type: object properties: line1: description: >- The first line of the address (e.g., street, PO Box, or company name). Maximum length: 41 characters. example: Conductor Labs Inc. type: string maxLength: 41 line2: description: >- The second line of the address, if needed (e.g., apartment, suite, unit, or building). Maximum length: 41 characters. example: 540 Market St. type: string maxLength: 41 line3: description: |- The third line of the address, if needed. Maximum length: 41 characters. example: Suite 100 type: string maxLength: 41 line4: description: |- The fourth line of the address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 line5: description: |- The fifth line of the address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 city: description: >- The city, district, suburb, town, or village name of the address. Maximum length: 31 characters. example: San Francisco type: string maxLength: 31 state: description: >- The state, county, province, or region name of the address. Maximum length: 21 characters. example: CA type: string maxLength: 21 postalCode: description: |- The postal code or ZIP code of the address. Maximum length: 13 characters. example: '94110' type: string maxLength: 13 country: description: The country name of the address. example: United States type: string note: description: >- A note written at the bottom of the address in the form in which it appears, such as the invoice form. example: Conductor HQ type: string additionalProperties: false shippingAddress: description: The customer's shipping address. type: object properties: line1: description: >- The first line of the address (e.g., street, PO Box, or company name). Maximum length: 41 characters. example: Conductor Labs Inc. type: string maxLength: 41 line2: description: >- The second line of the address, if needed (e.g., apartment, suite, unit, or building). Maximum length: 41 characters. example: 540 Market St. type: string maxLength: 41 line3: description: |- The third line of the address, if needed. Maximum length: 41 characters. example: Suite 100 type: string maxLength: 41 line4: description: |- The fourth line of the address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 line5: description: |- The fifth line of the address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 city: description: >- The city, district, suburb, town, or village name of the address. Maximum length: 31 characters. example: San Francisco type: string maxLength: 31 state: description: >- The state, county, province, or region name of the address. Maximum length: 21 characters. example: CA type: string maxLength: 21 postalCode: description: |- The postal code or ZIP code of the address. Maximum length: 13 characters. example: '94110' type: string maxLength: 13 country: description: The country name of the address. example: United States type: string note: description: >- A note written at the bottom of the address in the form in which it appears, such as the invoice form. example: Conductor HQ type: string additionalProperties: false alternateShippingAddresses: description: >- A list of additional shipping addresses for this customer. Useful when the customer has multiple shipping locations. minItems: 1 type: array items: type: object properties: name: type: string maxLength: 41 description: >- The case-insensitive unique name of this shipping address, unique across all shipping addresses. **NOTE**: Shipping addresses do not have a `fullName` field because they are not hierarchical objects, which is why `name` is unique for them but not for objects that have parents. Maximum length: 41 characters. example: Alternate shipping address line1: description: >- The first line of the shipping address (e.g., street, PO Box, or company name). Maximum length: 41 characters. example: Conductor Labs Inc. type: string maxLength: 41 line2: description: >- The second line of the shipping address, if needed (e.g., apartment, suite, unit, or building). Maximum length: 41 characters. example: 540 Market St. type: string maxLength: 41 line3: description: |- The third line of the shipping address, if needed. Maximum length: 41 characters. example: Suite 100 type: string maxLength: 41 line4: description: |- The fourth line of the shipping address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 line5: description: |- The fifth line of the shipping address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 city: description: >- The city, district, suburb, town, or village name of the shipping address. Maximum length: 31 characters. example: San Francisco type: string maxLength: 31 state: description: >- The state, county, province, or region name of the shipping address. Maximum length: 21 characters. example: CA type: string maxLength: 21 postalCode: description: |- The postal code or ZIP code of the shipping address. Maximum length: 13 characters. example: '94110' type: string maxLength: 13 country: description: The country name of the shipping address. example: United States type: string note: description: >- A note written at the bottom of the shipping address in the form in which it appears, such as the invoice form. example: Conductor HQ type: string isDefaultShippingAddress: description: >- Indicates whether this shipping address is the default shipping address. example: true type: boolean required: - name additionalProperties: false phone: description: |- The customer's primary telephone number. Maximum length: 21 characters. example: +1-555-123-4567 type: string maxLength: 21 alternatePhone: description: |- The customer's alternate telephone number. Maximum length: 21 characters. example: +1-555-987-6543 type: string maxLength: 21 fax: description: |- The customer's fax number. Maximum length: 21 characters. example: +1-555-555-1212 type: string maxLength: 21 email: description: The customer's email address. example: customer@example.com type: string ccEmail: description: >- An email address to carbon copy (CC) on communications with this customer. example: manager@example.com type: string contact: description: The name of the primary contact person for this customer. example: Jane Smith type: string alternateContact: description: The name of a alternate contact person for this customer. example: Bob Johnson type: string customContactFields: description: >- Additional custom contact fields for this customer, such as phone numbers or email addresses. minItems: 1 type: array items: type: object properties: name: type: string description: >- The name of the contact field (e.g., "old address", "secondary phone"). example: Main Phone value: type: string description: The value of the contact field. example: 555-123-4567 required: - name - value additionalProperties: false additionalContacts: description: Additional alternate contacts for this customer. minItems: 1 type: array items: type: object properties: salutation: description: >- The contact's formal salutation title that precedes their name, such as "Mr.", "Ms.", or "Dr.". example: Dr. type: string firstName: type: string maxLength: 25 description: |- The contact's first name. Maximum length: 25 characters. example: John middleName: description: |- The contact's middle name. Maximum length: 5 characters. example: A. type: string maxLength: 5 lastName: description: |- The contact's last name. Maximum length: 25 characters. example: Doe type: string maxLength: 25 jobTitle: description: The contact's job title. example: Purchasing Manager type: string customContactFields: description: >- Additional custom contact fields for this contact, such as phone numbers or email addresses. minItems: 1 type: array items: type: object properties: name: type: string description: >- The name of the contact field (e.g., "old address", "secondary phone"). example: Main Phone value: type: string description: The value of the contact field. example: 555-123-4567 required: - name - value additionalProperties: false required: - firstName additionalProperties: false customerTypeId: description: >- The customer's type, used for categorizing customers into meaningful segments, such as industry or region. example: 80000001-1234567890 type: string maxLength: 36 termsId: description: >- The customer's payment terms, defining when payment is due and any applicable discounts. example: 80000001-1234567890 type: string maxLength: 36 salesRepresentativeId: description: >- The customer's sales representative. Sales representatives can be employees, vendors, or other names in QuickBooks. example: 80000001-1234567890 type: string maxLength: 36 openingBalance: description: >- The opening balance of this customer's account, indicating the amount owed by this customer, represented as a decimal string. example: '1000.00' type: string openingBalanceDate: description: >- The date of the opening balance of this customer, in ISO 8601 format (YYYY-MM-DD). example: '2023-01-01' type: string format: date salesTaxCodeId: description: >- The default sales-tax code for transactions with this customer, determining whether the transactions are taxable or non-taxable. This can be overridden at the transaction or transaction-line level. 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. example: 80000001-1234567890 type: string maxLength: 36 salesTaxItemId: description: >- The sales-tax item used to calculate the actual tax amount for this customer's transactions by applying a specific tax rate collected for a single tax agency. Unlike `salesTaxCode`, which only indicates general taxability, this field drives the actual tax calculation and reporting. example: 80000001-1234567890 type: string maxLength: 36 salesTaxCountry: description: >- The country for which sales tax is collected for this customer. example: us type: string enum: - australia - canada - uk - us resaleNumber: description: >- The customer's resale number, used if the customer is purchasing items for resale. This number does not affect sales tax calculations or reports in QuickBooks. example: '123456789' type: string accountNumber: description: >- The customer's account number, which appears in the QuickBooks chart of accounts, reports, and graphs. Note that if the "Use Account Numbers" preference is turned off in QuickBooks, the account number may not be visible in the user interface, but it can still be set and retrieved through the API. example: '1010' type: string creditLimit: description: >- The customer's credit limit, represented as a decimal string. This is the maximum amount of money this customer can spend before being billed. If `null`, there is no credit limit. example: '5000.00' type: string preferredPaymentMethodId: description: >- The customer's preferred payment method (e.g., cash, check, credit card). example: 80000001-1234567890 type: string maxLength: 36 creditCard: description: >- The customer's credit card information, including card type, number, and expiration date, used for processing credit card payments. type: object properties: number: description: >- The credit card number. Must be masked with lower case "x" and no dashes. example: xxxxxxxxxxxx1234 type: string expirationMonth: description: The month when the credit card expires. example: 12 type: number expirationYear: description: The year when the credit card expires. example: 2024 type: number name: description: The cardholder's name on the card. example: John Doe type: string address: description: The card's billing address. example: 1234 Main St, Anytown, USA, 12345 type: string postalCode: description: The card's billing address ZIP or postal code. example: '12345' type: string additionalProperties: false jobStatus: description: >- The status of this customer's job, if this object is a job (i.e., sub-customer). example: in_progress type: string enum: - awarded - closed - in_progress - none - not_awarded - pending default: none jobStartDate: description: >- The date when work on this customer's job began, if applicable, in ISO 8601 format (YYYY-MM-DD). example: '2024-01-15' type: string format: date jobProjectedEndDate: description: >- The projected completion date for this customer's job, if applicable, in ISO 8601 format (YYYY-MM-DD). example: '2024-12-31' type: string format: date jobEndDate: description: >- The actual completion date of this customer's job, if applicable, in ISO 8601 format (YYYY-MM-DD). example: '2024-11-30' type: string format: date jobDescription: description: >- A brief description of this customer's job, if this object is a job (i.e., sub-customer). example: Kitchen renovation project for residential client. type: string jobTypeId: description: >- The type or category of this customer's job, if this object is a job (i.e., sub-customer). Useful for classifying into meaningful segments (e.g., repair, installation, consulting). example: 80000001-1234567890 type: string maxLength: 36 note: description: A note or comment about this customer. example: Our favorite customer. type: string additionalNotes: description: Additional notes about this customer. minItems: 1 type: array items: type: object properties: note: type: string description: The text of this note. example: This is a fun note. required: - note additionalProperties: false preferredDeliveryMethod: description: >- The preferred method for delivering invoices and other documents to this customer. example: email type: string enum: - email - mail - none default: none priceLevelId: description: >- The customer's custom price level that QuickBooks automatically applies to calculate item rates in new transactions (e.g., invoices, sales receipts, sales orders, and credit memos) for this customer. While applied automatically, this can be overridden when creating individual transactions. Note that transactions will not show the price level itself, only the final `rate` calculated from it. example: 80000001-1234567890 type: string maxLength: 36 externalId: type: string format: uuid description: >- 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. **IMPORTANT**: This field must be formatted as a valid GUID; otherwise, QuickBooks will return an error. example: 12345678-abcd-1234-abcd-1234567890ab taxRegistrationNumber: description: >- The customer's tax registration number, for use in Canada or the UK. example: GB123456789 type: string currencyId: description: >- The customer's currency. For built-in currencies, the name and code are standard ISO 4217 international values. For user-defined currencies, all values are editable. example: 80000001-1234567890 type: string maxLength: 36 required: - name additionalProperties: false responses: '200': description: Returns the newly created customer. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_customer' x-codeSamples: - lang: JavaScript source: |- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const customer = await conductor.qbd.customers.create({ name: 'Website Redesign Project', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(customer.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) customer = conductor.qbd.customers.create( name="Website Redesign Project", conductor_end_user_id="end_usr_1234567abcdefg", ) print(customer.id) /quickbooks-desktop/customers/{id}: get: summary: Retrieve a customer description: >- Retrieves a customer by ID. **IMPORTANT:** If you need to fetch multiple specific customers 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. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the customer to retrieve. example: 80000001-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the customer to retrieve. responses: '200': description: Returns the specified customer. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_customer' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const customer = await conductor.qbd.customers.retrieve('80000001-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(customer.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) customer = conductor.qbd.customers.retrieve( id="80000001-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(customer.id) post: summary: Update a customer description: Updates an existing customer. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the customer to update. example: 80000001-1234567890 required: true description: The QuickBooks-assigned unique identifier of the customer to update. requestBody: required: true content: application/json: schema: type: object properties: revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of the customer 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. example: '1721172183' name: description: >- The case-insensitive name of this customer. Not guaranteed to be unique because it does not include the names of its hierarchical parent objects like `fullName` does. For example, two customers could both have the `name` "Website Redesign Project", but they could have unique `fullName` values, such as "ABC Corporation:Website Redesign Project" and "Baker:Website Redesign Project". Maximum length: 41 characters. example: Website Redesign Project type: string maxLength: 41 isActive: description: >- Indicates whether this customer is active. Inactive objects are typically hidden from views and reports in QuickBooks. Defaults to `true`. example: true type: boolean classId: description: >- The customer'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. example: 80000001-1234567890 type: string maxLength: 36 parentId: description: >- The parent customer one level above this one in the hierarchy. For example, if this customer has a `fullName` of "ABC Corporation:Website Redesign Project", its parent has a `fullName` of "ABC Corporation". If this customer is at the top level, this field will be `null`. example: 80000001-1234567890 type: string maxLength: 36 companyName: description: >- The name of the company associated with this customer. This name is used on invoices, checks, and other forms. Maximum length: 41 characters. example: Acme Corporation type: string maxLength: 41 salutation: description: >- The formal salutation title that precedes the name of the contact person for this customer, such as "Mr.", "Ms.", or "Dr.". example: Dr. type: string firstName: description: |- The first name of the contact person for this customer. Maximum length: 25 characters. example: John type: string maxLength: 25 middleName: description: |- The middle name of the contact person for this customer. Maximum length: 5 characters. example: A. type: string maxLength: 5 lastName: description: |- The last name of the contact person for this customer. Maximum length: 25 characters. example: Doe type: string maxLength: 25 jobTitle: description: The job title of the contact person for this customer. example: Purchasing Manager type: string billingAddress: description: The customer's billing address. type: object properties: line1: description: >- The first line of the address (e.g., street, PO Box, or company name). Maximum length: 41 characters. example: Conductor Labs Inc. type: string maxLength: 41 line2: description: >- The second line of the address, if needed (e.g., apartment, suite, unit, or building). Maximum length: 41 characters. example: 540 Market St. type: string maxLength: 41 line3: description: |- The third line of the address, if needed. Maximum length: 41 characters. example: Suite 100 type: string maxLength: 41 line4: description: |- The fourth line of the address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 line5: description: |- The fifth line of the address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 city: description: >- The city, district, suburb, town, or village name of the address. Maximum length: 31 characters. example: San Francisco type: string maxLength: 31 state: description: >- The state, county, province, or region name of the address. Maximum length: 21 characters. example: CA type: string maxLength: 21 postalCode: description: |- The postal code or ZIP code of the address. Maximum length: 13 characters. example: '94110' type: string maxLength: 13 country: description: The country name of the address. example: United States type: string note: description: >- A note written at the bottom of the address in the form in which it appears, such as the invoice form. example: Conductor HQ type: string additionalProperties: false shippingAddress: description: The customer's shipping address. type: object properties: line1: description: >- The first line of the address (e.g., street, PO Box, or company name). Maximum length: 41 characters. example: Conductor Labs Inc. type: string maxLength: 41 line2: description: >- The second line of the address, if needed (e.g., apartment, suite, unit, or building). Maximum length: 41 characters. example: 540 Market St. type: string maxLength: 41 line3: description: |- The third line of the address, if needed. Maximum length: 41 characters. example: Suite 100 type: string maxLength: 41 line4: description: |- The fourth line of the address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 line5: description: |- The fifth line of the address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 city: description: >- The city, district, suburb, town, or village name of the address. Maximum length: 31 characters. example: San Francisco type: string maxLength: 31 state: description: >- The state, county, province, or region name of the address. Maximum length: 21 characters. example: CA type: string maxLength: 21 postalCode: description: |- The postal code or ZIP code of the address. Maximum length: 13 characters. example: '94110' type: string maxLength: 13 country: description: The country name of the address. example: United States type: string note: description: >- A note written at the bottom of the address in the form in which it appears, such as the invoice form. example: Conductor HQ type: string additionalProperties: false alternateShippingAddresses: description: >- A list of additional shipping addresses for this customer. Useful when the customer has multiple shipping locations. minItems: 1 type: array items: type: object properties: name: type: string maxLength: 41 description: >- The case-insensitive unique name of this shipping address, unique across all shipping addresses. **NOTE**: Shipping addresses do not have a `fullName` field because they are not hierarchical objects, which is why `name` is unique for them but not for objects that have parents. Maximum length: 41 characters. example: Alternate shipping address line1: description: >- The first line of the shipping address (e.g., street, PO Box, or company name). Maximum length: 41 characters. example: Conductor Labs Inc. type: string maxLength: 41 line2: description: >- The second line of the shipping address, if needed (e.g., apartment, suite, unit, or building). Maximum length: 41 characters. example: 540 Market St. type: string maxLength: 41 line3: description: |- The third line of the shipping address, if needed. Maximum length: 41 characters. example: Suite 100 type: string maxLength: 41 line4: description: |- The fourth line of the shipping address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 line5: description: |- The fifth line of the shipping address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 city: description: >- The city, district, suburb, town, or village name of the shipping address. Maximum length: 31 characters. example: San Francisco type: string maxLength: 31 state: description: >- The state, county, province, or region name of the shipping address. Maximum length: 21 characters. example: CA type: string maxLength: 21 postalCode: description: |- The postal code or ZIP code of the shipping address. Maximum length: 13 characters. example: '94110' type: string maxLength: 13 country: description: The country name of the shipping address. example: United States type: string note: description: >- A note written at the bottom of the shipping address in the form in which it appears, such as the invoice form. example: Conductor HQ type: string isDefaultShippingAddress: description: >- Indicates whether this shipping address is the default shipping address. example: true type: boolean required: - name additionalProperties: false phone: description: |- The customer's primary telephone number. Maximum length: 21 characters. example: +1-555-123-4567 type: string maxLength: 21 alternatePhone: description: |- The customer's alternate telephone number. Maximum length: 21 characters. example: +1-555-987-6543 type: string maxLength: 21 fax: description: |- The customer's fax number. Maximum length: 21 characters. example: +1-555-555-1212 type: string maxLength: 21 email: description: The customer's email address. example: customer@example.com type: string ccEmail: description: >- An email address to carbon copy (CC) on communications with this customer. example: manager@example.com type: string contact: description: The name of the primary contact person for this customer. example: Jane Smith type: string alternateContact: description: The name of a alternate contact person for this customer. example: Bob Johnson type: string customContactFields: description: >- Additional custom contact fields for this customer, such as phone numbers or email addresses. minItems: 1 type: array items: type: object properties: name: type: string description: >- The name of the contact field (e.g., "old address", "secondary phone"). example: Main Phone value: type: string description: The value of the contact field. example: 555-123-4567 required: - name - value additionalProperties: false additionalContacts: description: Additional alternate contacts for this customer. minItems: 1 type: array items: type: object properties: id: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the contact to update. example: 80000001-1234567890 revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of the contact 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. example: '1721172183' salutation: description: >- The contact's formal salutation title that precedes their name, such as "Mr.", "Ms.", or "Dr.". example: Dr. type: string firstName: description: |- The contact's first name. Maximum length: 25 characters. example: John type: string maxLength: 25 middleName: description: |- The contact's middle name. Maximum length: 5 characters. example: A. type: string maxLength: 5 lastName: description: |- The contact's last name. Maximum length: 25 characters. example: Doe type: string maxLength: 25 jobTitle: description: The contact's job title. example: Purchasing Manager type: string customContactFields: description: >- Additional custom contact fields for this contact, such as phone numbers or email addresses. minItems: 1 type: array items: type: object properties: name: type: string description: >- The name of the contact field (e.g., "old address", "secondary phone"). example: Main Phone value: type: string description: The value of the contact field. example: 555-123-4567 required: - name - value additionalProperties: false required: - id - revisionNumber additionalProperties: false customerTypeId: description: >- The customer's type, used for categorizing customers into meaningful segments, such as industry or region. example: 80000001-1234567890 type: string maxLength: 36 termsId: description: >- The customer's payment terms, defining when payment is due and any applicable discounts. example: 80000001-1234567890 type: string maxLength: 36 salesRepresentativeId: description: >- The customer's sales representative. Sales representatives can be employees, vendors, or other names in QuickBooks. example: 80000001-1234567890 type: string maxLength: 36 salesTaxCodeId: description: >- The default sales-tax code for transactions with this customer, determining whether the transactions are taxable or non-taxable. This can be overridden at the transaction or transaction-line level. 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. example: 80000001-1234567890 type: string maxLength: 36 salesTaxItemId: description: >- The sales-tax item used to calculate the actual tax amount for this customer's transactions by applying a specific tax rate collected for a single tax agency. Unlike `salesTaxCode`, which only indicates general taxability, this field drives the actual tax calculation and reporting. example: 80000001-1234567890 type: string maxLength: 36 salesTaxCountry: description: >- The country for which sales tax is collected for this customer. example: us type: string enum: - australia - canada - uk - us resaleNumber: description: >- The customer's resale number, used if the customer is purchasing items for resale. This number does not affect sales tax calculations or reports in QuickBooks. example: '123456789' type: string accountNumber: description: >- The customer's account number, which appears in the QuickBooks chart of accounts, reports, and graphs. Note that if the "Use Account Numbers" preference is turned off in QuickBooks, the account number may not be visible in the user interface, but it can still be set and retrieved through the API. example: '1010' type: string creditLimit: description: >- The customer's credit limit, represented as a decimal string. This is the maximum amount of money this customer can spend before being billed. If `null`, there is no credit limit. example: '5000.00' type: string preferredPaymentMethodId: description: >- The customer's preferred payment method (e.g., cash, check, credit card). example: 80000001-1234567890 type: string maxLength: 36 creditCard: description: >- The customer's credit card information, including card type, number, and expiration date, used for processing credit card payments. type: object properties: number: description: >- The credit card number. Must be masked with lower case "x" and no dashes. example: xxxxxxxxxxxx1234 type: string expirationMonth: description: The month when the credit card expires. example: 12 type: number expirationYear: description: The year when the credit card expires. example: 2024 type: number name: description: The cardholder's name on the card. example: John Doe type: string address: description: The card's billing address. example: 1234 Main St, Anytown, USA, 12345 type: string postalCode: description: The card's billing address ZIP or postal code. example: '12345' type: string additionalProperties: false jobStatus: description: >- The status of this customer's job, if this object is a job (i.e., sub-customer). example: in_progress type: string enum: - awarded - closed - in_progress - none - not_awarded - pending jobStartDate: description: >- The date when work on this customer's job began, if applicable, in ISO 8601 format (YYYY-MM-DD). example: '2024-01-15' type: string format: date jobProjectedEndDate: description: >- The projected completion date for this customer's job, if applicable, in ISO 8601 format (YYYY-MM-DD). example: '2024-12-31' type: string format: date jobEndDate: description: >- The actual completion date of this customer's job, if applicable, in ISO 8601 format (YYYY-MM-DD). example: '2024-11-30' type: string format: date jobDescription: description: >- A brief description of this customer's job, if this object is a job (i.e., sub-customer). example: Kitchen renovation project for residential client. type: string jobTypeId: description: >- The type or category of this customer's job, if this object is a job (i.e., sub-customer). Useful for classifying into meaningful segments (e.g., repair, installation, consulting). example: 80000001-1234567890 type: string maxLength: 36 note: description: A note or comment about this customer. example: Our favorite customer. type: string additionalNotes: description: Additional notes about this customer. minItems: 1 type: array items: type: object properties: id: description: The ID of the note to update. example: 1 type: number note: type: string description: The text of this note. example: This is a fun note. required: - id - note additionalProperties: false preferredDeliveryMethod: description: >- The preferred method for delivering invoices and other documents to this customer. example: email type: string enum: - email - mail - none priceLevelId: description: >- The customer's custom price level that QuickBooks automatically applies to calculate item rates in new transactions (e.g., invoices, sales receipts, sales orders, and credit memos) for this customer. While applied automatically, this can be overridden when creating individual transactions. Note that transactions will not show the price level itself, only the final `rate` calculated from it. example: 80000001-1234567890 type: string maxLength: 36 taxRegistrationNumber: description: >- The customer's tax registration number, for use in Canada or the UK. example: GB123456789 type: string currencyId: description: >- The customer's currency. For built-in currencies, the name and code are standard ISO 4217 international values. For user-defined currencies, all values are editable. example: 80000001-1234567890 type: string maxLength: 36 required: - revisionNumber additionalProperties: false responses: '200': description: Returns the updated customer. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_customer' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const customer = await conductor.qbd.customers.update('80000001-1234567890', { revisionNumber: '1721172183', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(customer.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) customer = conductor.qbd.customers.update( id="80000001-1234567890", revision_number="1721172183", conductor_end_user_id="end_usr_1234567abcdefg", ) print(customer.id) /quickbooks-desktop/date-driven-terms: get: summary: List all date-driven terms description: >- Returns a list of date-driven terms. **NOTE:** QuickBooks Desktop does not support pagination for date-driven terms; hence, there is no `cursor` parameter. Users typically have few date-driven terms. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: query name: ids schema: description: >- Filter for specific date-driven terms 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: - 80000001-1234567890 type: array items: type: string description: >- Filter for specific date-driven terms 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. - in: query name: names schema: description: >- Filter for specific date-driven terms by their name(s), case-insensitive. Like `id`, `name` is a unique identifier for a date-driven term. **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: - 2% 5th Net 25th type: array items: type: string description: >- Filter for specific date-driven terms by their name(s), case-insensitive. Like `id`, `name` is a unique identifier for a date-driven term. **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. - in: query name: limit schema: description: >- The maximum number of objects to return. **IMPORTANT**: QuickBooks Desktop does not support cursor-based pagination for date-driven terms. 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 date-driven terms without limit, unlike paginated endpoints which default to 150 records. This is acceptable because date-driven terms typically have low record counts. example: 10 type: integer minimum: 1 description: >- The maximum number of objects to return. **IMPORTANT**: QuickBooks Desktop does not support cursor-based pagination for date-driven terms. 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 date-driven terms without limit, unlike paginated endpoints which default to 150 records. This is acceptable because date-driven terms typically have low record counts. - in: query name: status schema: description: Filter for date-driven terms that are active, inactive, or both. example: active type: string enum: - active - all - inactive default: active description: Filter for date-driven terms that are active, inactive, or both. - in: query name: updatedAfter schema: description: >- Filter for date-driven terms 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. example: 2025-01-01T12:34:56.000Z type: string description: >- Filter for date-driven terms 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. - in: query name: updatedBefore schema: description: >- Filter for date-driven terms 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. example: 2025-02-01T12:34:56.000Z type: string description: >- Filter for date-driven terms 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. - in: query name: nameContains schema: description: >- Filter for date-driven terms whose `name` contains this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameStartsWith` or `nameEndsWith`. example: ABC type: string description: >- Filter for date-driven terms whose `name` contains this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameStartsWith` or `nameEndsWith`. - in: query name: nameStartsWith schema: description: >- Filter for date-driven terms whose `name` starts with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameEndsWith`. example: ABC type: string description: >- Filter for date-driven terms whose `name` starts with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameEndsWith`. - in: query name: nameEndsWith schema: description: >- Filter for date-driven terms whose `name` ends with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameStartsWith`. example: ABC type: string description: >- Filter for date-driven terms whose `name` ends with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameStartsWith`. - in: query name: nameFrom schema: description: >- Filter for date-driven terms whose `name` is alphabetically greater than or equal to this value. example: A type: string description: >- Filter for date-driven terms whose `name` is alphabetically greater than or equal to this value. - in: query name: nameTo schema: description: >- Filter for date-driven terms whose `name` is alphabetically less than or equal to this value. example: Z type: string description: >- Filter for date-driven terms whose `name` is alphabetically less than or equal to this value. responses: '200': description: Returns a list of date-driven terms. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: objectType: description: The type of object. This value is always `"list"`. example: list type: string const: list url: type: string description: The endpoint URL where this list can be accessed. example: /v1/quickbooks-desktop/date-driven-terms data: type: array items: $ref: '#/components/schemas/qbd_date_driven_term' description: The array of date-driven terms. required: - objectType - url - data additionalProperties: false x-codeSamples: - lang: JavaScript source: |- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const dateDrivenTerms = await conductor.qbd.dateDrivenTerms.list({ conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(dateDrivenTerms.data); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) date_driven_terms = conductor.qbd.date_driven_terms.list( conductor_end_user_id="end_usr_1234567abcdefg", ) print(date_driven_terms.data) post: summary: Create a date-driven term description: >- Creates a date-driven term that sets the payment due on a specific day of the month and can optionally grant an early-payment discount before `discountDayOfMonth`. Use it when you need due dates tied to calendar days instead of a fixed number of days after the transaction. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. requestBody: required: true content: application/json: schema: type: object properties: name: type: string maxLength: 31 description: >- The case-insensitive unique name of this date-driven term, unique across all date-driven terms. **NOTE**: Date-driven terms do not have a `fullName` field because they are not hierarchical objects, which is why `name` is unique for them but not for objects that have parents. Maximum length: 31 characters. example: 2% 5th Net 25th isActive: description: >- Indicates whether this date-driven term is active. Inactive objects are typically hidden from views and reports in QuickBooks. Defaults to `true`. example: true default: true type: boolean dueDayOfMonth: description: >- The day of the month when full payment is due without discount. example: 15 type: number gracePeriodDays: description: >- The number of days before `dueDayOfMonth` when an invoice or bill issued within this threshold is considered due the following month. For example, with `dueDayOfMonth` set to 15 and `gracePeriodDays` set to 2, an invoice issued on the 13th would be due on the 15th of the next month, while an invoice issued on the 12th would be due on the 15th of the current month. example: 2 type: number discountDayOfMonth: description: >- The day of the month within which payment must be received to qualify for the discount specified by `discountPercentage`. example: 5 type: number discountPercentage: description: >- The discount percentage applied to the payment if received on or before the specified `discountDayOfMonth`. The value is between 0 and 100. example: '10' type: string required: - name - dueDayOfMonth additionalProperties: false responses: '200': description: Returns the newly created date-driven term. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_date_driven_term' x-codeSamples: - lang: JavaScript source: |- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const dateDrivenTerm = await conductor.qbd.dateDrivenTerms.create({ dueDayOfMonth: 15, name: '2% 5th Net 25th', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(dateDrivenTerm.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) date_driven_term = conductor.qbd.date_driven_terms.create( due_day_of_month=15, name="2% 5th Net 25th", conductor_end_user_id="end_usr_1234567abcdefg", ) print(date_driven_term.id) /quickbooks-desktop/date-driven-terms/{id}: get: summary: Retrieve a date-driven term description: >- Retrieves a date-driven term by ID. **IMPORTANT:** If you need to fetch multiple specific date-driven terms 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. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the date-driven term to retrieve. example: 80000001-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the date-driven term to retrieve. responses: '200': description: Returns the specified date-driven term. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_date_driven_term' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const dateDrivenTerm = await conductor.qbd.dateDrivenTerms.retrieve('80000001-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(dateDrivenTerm.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) date_driven_term = conductor.qbd.date_driven_terms.retrieve( id="80000001-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(date_driven_term.id) /quickbooks-desktop/deleted-list-objects: get: summary: List all deleted list-objects description: >- Lists deleted non-transaction list-objects (e.g., customers, vendors, employees, items) from the last 90 days. Results are grouped by list-object type and ordered by actual delete time (ascending). For deleted transactions (e.g., invoices, bills, estimates), see the deleted-transactions endpoint. **NOTE:** QuickBooks Desktop does not support pagination for deleted list-objects; hence, there is no `cursor` parameter. Users typically have few deleted list-objects. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: query name: objectTypes schema: description: Filter for deleted list-objects by their list-object type(s). example: - customer type: array items: type: string enum: - account - billing_rate - class - currency - customer - customer_message - customer_type - date_driven_terms - employee - inventory_site - item_discount - item_fixed_asset - item_group - item_inventory - item_inventory_assembly - item_non_inventory - item_other_charge - item_payment - item_sales_tax - item_sales_tax_group - item_service - item_subtotal - job_type - other_name - payment_method - payroll_item_non_wage - payroll_item_wage - price_level - sales_representative - sales_tax_code - ship_method - standard_terms - to_do - unit_of_measure_set - vehicle - vendor - vendor_type - workers_comp_code required: true description: Filter for deleted list-objects by their list-object type(s). - in: query name: deletedAfter schema: description: >- Filter for deleted list-objects deleted on or after this date/time, within the last 90 days (QuickBooks limit). 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. example: 2025-01-01T12:34:56.000Z type: string description: >- Filter for deleted list-objects deleted on or after this date/time, within the last 90 days (QuickBooks limit). 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. - in: query name: deletedBefore schema: description: >- Filter for deleted list-objects deleted on or before this date/time, within the last 90 days (QuickBooks limit). 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. example: 2025-02-01T12:34:56.000Z type: string description: >- Filter for deleted list-objects deleted on or before this date/time, within the last 90 days (QuickBooks limit). 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. responses: '200': description: Returns a list of deleted list-objects. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: objectType: description: The type of object. This value is always `"list"`. example: list type: string const: list url: type: string description: The endpoint URL where this list can be accessed. example: /v1/quickbooks-desktop/deleted-list-objects data: type: array items: $ref: '#/components/schemas/qbd_deleted_list_object' description: The array of deleted list-objects. required: - objectType - url - data additionalProperties: false x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const deletedListObjects = await conductor.qbd.deletedListObjects.list({ objectTypes: ['customer'], conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(deletedListObjects.data); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) deleted_list_objects = conductor.qbd.deleted_list_objects.list( object_types=["customer"], conductor_end_user_id="end_usr_1234567abcdefg", ) print(deleted_list_objects.data) /quickbooks-desktop/deleted-transactions: get: summary: List all deleted transactions description: >- Lists deleted transactions of the specified type(s) (e.g., invoice, bill, estimate) in the last 90 days. Results are grouped by transaction type and ordered by actual delete time (ascending). NOTE: For deleted non-transaction list-objects (e.g., customer, vendor, employee), see the deleted-list-objects endpoint. **NOTE:** QuickBooks Desktop does not support pagination for deleted transactions; hence, there is no `cursor` parameter. Users typically have few deleted transactions. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: query name: transactionTypes schema: description: Filter for deleted transactions by their transaction type(s). example: - invoice type: array items: type: string enum: - 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 - purchase_order - receive_payment - sales_order - sales_receipt - sales_tax_payment_check - time_tracking - transfer_inventory - vehicle_mileage - vendor_credit required: true description: Filter for deleted transactions by their transaction type(s). - in: query name: deletedAfter schema: description: >- Filter for deleted transactions deleted on or after this date/time, within the last 90 days (QuickBooks limit). 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. example: 2025-01-01T12:34:56.000Z type: string description: >- Filter for deleted transactions deleted on or after this date/time, within the last 90 days (QuickBooks limit). 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. - in: query name: deletedBefore schema: description: >- Filter for deleted transactions deleted on or before this date/time, within the last 90 days (QuickBooks limit). 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. example: 2025-02-01T12:34:56.000Z type: string description: >- Filter for deleted transactions deleted on or before this date/time, within the last 90 days (QuickBooks limit). 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. responses: '200': description: Returns a list of deleted transactions. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: objectType: description: The type of object. This value is always `"list"`. example: list type: string const: list url: type: string description: The endpoint URL where this list can be accessed. example: /v1/quickbooks-desktop/deleted-transactions data: type: array items: $ref: '#/components/schemas/qbd_deleted_transaction' description: The array of deleted transactions. required: - objectType - url - data additionalProperties: false x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const deletedTransactions = await conductor.qbd.deletedTransactions.list({ transactionTypes: ['invoice'], conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(deletedTransactions.data); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) deleted_transactions = conductor.qbd.deleted_transactions.list( transaction_types=["invoice"], conductor_end_user_id="end_usr_1234567abcdefg", ) print(deleted_transactions.data) /quickbooks-desktop/deposits: get: summary: List all deposits description: >- Returns a list of deposits. Use the `cursor` parameter to paginate through the results. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: query name: ids schema: description: >- Filter for specific deposits 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 type: array items: type: string description: >- Filter for specific deposits 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. - in: query name: limit schema: default: 150 description: >- 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. example: 150 type: integer minimum: 1 maximum: 150 description: >- 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. - in: query name: cursor schema: description: >- 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 type: string description: >- 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. - in: query name: updatedAfter schema: description: >- Filter for deposits 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. example: 2025-01-01T12:34:56.000Z type: string description: >- Filter for deposits 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. - in: query name: updatedBefore schema: description: >- Filter for deposits 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. example: 2025-02-01T12:34:56.000Z type: string description: >- Filter for deposits 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. - in: query name: transactionDateFrom schema: description: >- Filter for deposits 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-01` → `2025-01-01T00:00:00`). example: '2025-01-01' type: string format: date description: >- Filter for deposits 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-01` → `2025-01-01T00:00:00`). - in: query name: transactionDateTo schema: description: >- Filter for deposits 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-01` → `2025-01-01T23:59:59`). example: '2025-02-01' type: string format: date description: >- Filter for deposits 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-01` → `2025-01-01T23:59:59`). - in: query name: entityIds schema: description: >- Filter for deposits associated with these entities (customers, vendors, employees, etc.). These are the entities referenced on the deposit's manual lines. example: - 80000001-1234567890 type: array items: type: string description: >- Filter for deposits associated with these entities (customers, vendors, employees, etc.). These are the entities referenced on the deposit's manual lines. - in: query name: accountIds schema: description: Filter for deposits associated with these accounts. example: - 80000001-1234567890 type: array items: type: string description: Filter for deposits associated with these accounts. - in: query name: currencyIds schema: description: Filter for deposits in these currencies. example: - 80000001-1234567890 type: array items: type: string description: Filter for deposits in these currencies. - in: query name: includeLineItems schema: description: Whether to include line items in the response. Defaults to `true`. example: true type: boolean default: true description: Whether to include line items in the response. Defaults to `true`. responses: '200': description: Returns a list of deposits. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: objectType: description: The type of object. This value is always `"list"`. example: list type: string const: list url: type: string description: The endpoint URL where this list can be accessed. example: /v1/quickbooks-desktop/deposits data: type: array items: $ref: '#/components/schemas/qbd_deposit' description: The array of deposits. nextCursor: anyOf: - type: string - type: 'null' description: >- The `nextCursor` is a pagination token returned in the response when you use the `limit` parameter in your request. To retrieve subsequent pages of results, include this token as the value of the `cursor` request parameter in your following API calls. **NOTE**: The `nextCursor` value remains constant throughout the pagination process for a specific list instance; continue to use the same `nextCursor` token in each request to fetch additional pages. example: 12345678-abcd-abcd-example-1234567890ab remainingCount: anyOf: - type: number - type: 'null' description: The number of objects remaining to be fetched. example: 10 hasMore: type: boolean description: Indicates whether there are more objects to be fetched. required: - objectType - url - data - nextCursor - remainingCount - hasMore additionalProperties: false x-codeSamples: - lang: JavaScript source: |- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); // Automatically fetches more pages as needed. for await (const deposit of conductor.qbd.deposits.list({ conductorEndUserId: 'end_usr_1234567abcdefg', })) { console.log(deposit.id); } - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) page = conductor.qbd.deposits.list( conductor_end_user_id="end_usr_1234567abcdefg", ) page = page.data[0] print(page.id) post: summary: Create a deposit description: >- Creates a deposit into a QuickBooks Desktop bank or other asset account. Lines can either reference existing payments waiting to be deposited, using `paymentTransactionId` and optionally `paymentTransactionLineId`, or describe a manual transfer from another account using `accountId` and related line details. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. requestBody: required: true content: application/json: schema: type: object properties: transactionDate: type: string format: date description: The date of this deposit, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-01' depositToAccountId: description: >- The account where the funds for this deposit will be deposited. example: 80000001-1234567890 type: string maxLength: 36 memo: description: A memo or note for this deposit. example: Batch settlement deposit type: string cashBack: description: >- Cash back taken out of this deposit and recorded to another account, such as Petty Cash. type: object properties: accountId: description: >- The account where this deposit cash-back line's cash-back amount is recorded, such as Petty Cash. This amount reduces the total credited to the deposit's destination account. example: 80000001-1234567890 type: string maxLength: 36 memo: description: A memo or note for this deposit cash-back line. example: Cash back from deposit type: string amount: description: >- The cash-back amount taken out of the deposit and recorded to this deposit cash-back line's account, represented as a decimal string. Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45"). example: '1000.00' type: string required: - accountId additionalProperties: false currencyId: description: >- The deposit's currency. For built-in currencies, the name and code are standard ISO 4217 international values. For user-defined currencies, all values are editable. example: 80000001-1234567890 type: string maxLength: 36 exchangeRate: description: >- The market exchange rate between this deposit'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: 1.2345 type: number externalId: type: string format: uuid description: >- 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. **IMPORTANT**: This field must be formatted as a valid GUID; otherwise, QuickBooks will return an error. example: 12345678-abcd-1234-abcd-1234567890ab lines: description: >- The deposit's deposit lines, each representing either an existing payment selected for deposit or a manual transfer from another account into the deposit account. minItems: 1 type: array items: type: object properties: paymentTransactionId: description: >- The ID of an existing undeposited payment to include in this deposit line. Use the `paymentTransactionId` from a payments-to-deposit result, or the `id` from the original receive-payment response. If the source payment has multiple depositable lines and you omit `paymentTransactionLineId`, QuickBooks Desktop deposits only the first line. example: 123ABC-1234567890 type: string maxLength: 36 paymentTransactionLineId: type: string maxLength: 36 description: >- The line ID for the specific undeposited payment line to include in this deposit line. Use the `paymentTransactionLineId` from a payments-to-deposit result. If the source payment has multiple depositable lines, provide this field with `paymentTransactionId` to choose the exact line. example: 456DEF-1234567890 overrideMemo: description: >- The memo to use for this deposit line, overriding the memo from the existing payment line. Maximum length: 4095 characters. example: Batch settlement deposit type: string maxLength: 4095 overrideCheckNumber: description: >- The check number to use for this deposit line, overriding the check number from the existing payment line. Maximum length: 11 characters. example: '1234567890' type: string maxLength: 11 overrideClassId: description: >- The class to use for this deposit line, overriding the class from the existing payment line. example: 80000001-1234567890 type: string maxLength: 36 entityId: description: >- The customer, vendor, employee, or person on QuickBooks's "Other Names" list associated with this manual deposit line. example: 80000001-1234567890 type: string maxLength: 36 accountId: description: >- For a manual deposit line, the account that the funds are transferred from into the deposit's destination account. To deposit an existing payment instead, use `paymentTransactionId` and, when needed, `paymentTransactionLineId`. example: 80000001-1234567890 type: string maxLength: 36 memo: description: A memo or note for this deposit line. example: Payment batched into settlement deposit type: string checkNumber: description: >- The check number of a check received for this deposit line. example: '1234567890' type: string paymentMethodId: description: >- The deposit line's payment method (e.g., cash, check, credit card). example: 80000001-1234567890 type: string maxLength: 36 classId: description: >- The deposit 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. example: 80000001-1234567890 type: string maxLength: 36 amount: description: >- For a manual deposit line, the amount transferred from the line's account into the deposit's destination account, represented as a decimal string. Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45"). example: '1000.00' type: string additionalProperties: false required: - transactionDate - depositToAccountId additionalProperties: false responses: '200': description: Returns the newly created deposit. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_deposit' x-codeSamples: - lang: JavaScript source: |- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const deposit = await conductor.qbd.deposits.create({ depositToAccountId: '80000001-1234567890', transactionDate: '2024-10-01', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(deposit.id); - lang: Python source: |- import os from datetime import date from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) deposit = conductor.qbd.deposits.create( deposit_to_account_id="80000001-1234567890", transaction_date=date.fromisoformat("2024-10-01"), conductor_end_user_id="end_usr_1234567abcdefg", ) print(deposit.id) /quickbooks-desktop/deposits/{id}: get: summary: Retrieve a deposit description: >- Retrieves a deposit by ID. **IMPORTANT:** If you need to fetch multiple specific deposits 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. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the deposit to retrieve. example: 123ABC-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the deposit to retrieve. responses: '200': description: Returns the specified deposit. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_deposit' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const deposit = await conductor.qbd.deposits.retrieve('123ABC-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(deposit.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) deposit = conductor.qbd.deposits.retrieve( id="123ABC-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(deposit.id) post: summary: Update a deposit description: >- Updates an existing deposit. **NOTE:** If you include `lines`, QuickBooks Desktop replaces that line list with the array you send, so include unchanged lines you want to keep and use `id: "-1"` for new lines. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the deposit to update. example: 123ABC-1234567890 required: true description: The QuickBooks-assigned unique identifier of the deposit to update. requestBody: required: true content: application/json: schema: type: object properties: revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of the deposit 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. example: '1721172183' transactionDate: description: The date of this deposit, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-01' type: string format: date depositToAccountId: description: >- The account where the funds for this deposit will be deposited. example: 80000001-1234567890 type: string maxLength: 36 memo: description: A memo or note for this deposit. example: Batch settlement deposit type: string cashBack: description: >- Cash back taken out of this deposit and recorded to another account, such as Petty Cash. type: object properties: accountId: description: >- The account where this deposit cash-back line's cash-back amount is recorded, such as Petty Cash. This amount reduces the total credited to the deposit's destination account. example: 80000001-1234567890 type: string maxLength: 36 memo: description: A memo or note for this deposit cash-back line. example: Cash back from deposit type: string amount: description: >- The cash-back amount taken out of the deposit and recorded to this deposit cash-back line's account, represented as a decimal string. Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45"). example: '1000.00' type: string additionalProperties: false currencyId: description: >- The deposit's currency. For built-in currencies, the name and code are standard ISO 4217 international values. For user-defined currencies, all values are editable. example: 80000001-1234567890 type: string maxLength: 36 exchangeRate: description: >- The market exchange rate between this deposit'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: 1.2345 type: number lines: description: >- The deposit's deposit lines, each representing either an existing payment selected for deposit or a manual transfer from another account into the deposit account. **IMPORTANT**: 1. Including this array in your update request will **REPLACE** all existing deposit lines for the deposit with this array. To keep any existing deposit lines, you must include them in this array even if they have not changed. **Any deposit lines not included will be removed.** 2. To add a new deposit line, include it here with the `id` field set to `-1`. 3. If you do not wish to modify any deposit lines, omit this field entirely to keep them unchanged. minItems: 1 type: array items: type: object properties: id: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of an existing deposit line you wish to retain or update. **IMPORTANT**: Set this field to `-1` for new deposit lines you wish to add. example: 456DEF-1234567890 paymentTransactionId: description: >- The ID of an existing undeposited payment to include in this deposit line. Use the `paymentTransactionId` from a payments-to-deposit result, or the `id` from the original receive-payment response. If the source payment has multiple depositable lines and you omit `paymentTransactionLineId`, QuickBooks Desktop deposits only the first line. example: 123ABC-1234567890 type: string maxLength: 36 paymentTransactionLineId: type: string maxLength: 36 description: >- The line ID for the specific undeposited payment line to include in this deposit line. Use the `paymentTransactionLineId` from a payments-to-deposit result. If the source payment has multiple depositable lines, provide this field with `paymentTransactionId` to choose the exact line. example: 456DEF-1234567890 overrideMemo: description: >- The memo to use for this deposit line, overriding the memo from the existing payment line. Maximum length: 4095 characters. example: Batch settlement deposit type: string maxLength: 4095 overrideCheckNumber: description: >- The check number to use for this deposit line, overriding the check number from the existing payment line. Maximum length: 11 characters. example: '1234567890' type: string maxLength: 11 overrideClassId: description: >- The class to use for this deposit line, overriding the class from the existing payment line. example: 80000001-1234567890 type: string maxLength: 36 entityId: description: >- The customer, vendor, employee, or person on QuickBooks's "Other Names" list associated with this manual deposit line. example: 80000001-1234567890 type: string maxLength: 36 accountId: description: >- For a manual deposit line, the account that the funds are transferred from into the deposit's destination account. To deposit an existing payment instead, use `paymentTransactionId` and, when needed, `paymentTransactionLineId`. example: 80000001-1234567890 type: string maxLength: 36 memo: description: A memo or note for this deposit line. example: Payment batched into settlement deposit type: string checkNumber: description: >- The check number of a check received for this deposit line. example: '1234567890' type: string paymentMethodId: description: >- The deposit line's payment method (e.g., cash, check, credit card). example: 80000001-1234567890 type: string maxLength: 36 classId: description: >- The deposit 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. example: 80000001-1234567890 type: string maxLength: 36 amount: description: >- For a manual deposit line, the amount transferred from the line's account into the deposit's destination account, represented as a decimal string. Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45"). example: '1000.00' type: string required: - id additionalProperties: false required: - revisionNumber additionalProperties: false responses: '200': description: Returns the updated deposit. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_deposit' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const deposit = await conductor.qbd.deposits.update('123ABC-1234567890', { revisionNumber: '1721172183', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(deposit.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) deposit = conductor.qbd.deposits.update( id="123ABC-1234567890", revision_number="1721172183", conductor_end_user_id="end_usr_1234567abcdefg", ) print(deposit.id) delete: summary: Delete a deposit description: >- Permanently deletes a deposit. The deletion will fail if the deposit is currently in use or has any linked transactions that are in use. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the deposit to delete. example: 123ABC-1234567890 required: true description: The QuickBooks-assigned unique identifier of the deposit to delete. responses: '200': description: >- Returns a confirmation of the deletion with the ID of the deleted deposit. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: id: type: string description: >- The QuickBooks-assigned unique identifier of the deleted deposit. example: 123ABC-1234567890 objectType: description: The type of object. This value is always `"qbd_deposit"`. example: qbd_deposit type: string const: qbd_deposit deleted: type: boolean description: Indicates whether the deposit was deleted. example: true required: - id - objectType - deleted additionalProperties: false x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const deposit = await conductor.qbd.deposits.delete('123ABC-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(deposit.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) deposit = conductor.qbd.deposits.delete( id="123ABC-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(deposit.id) /quickbooks-desktop/deposits/{id}/void: post: summary: Void a deposit description: >- Voids a deposit by setting its amount to zero while keeping a record of it in QuickBooks. The void will fail if the deposit is currently in use or has any linked transactions that are in use. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: The QuickBooks-assigned unique identifier of the deposit to void. example: 123ABC-1234567890 required: true description: The QuickBooks-assigned unique identifier of the deposit to void. responses: '200': description: >- Returns a confirmation of the void with the ID of the voided deposit. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: id: type: string description: >- The QuickBooks-assigned unique identifier of the voided deposit. example: 123ABC-1234567890 objectType: description: The type of object. This value is always `"qbd_deposit"`. example: qbd_deposit type: string const: qbd_deposit createdAt: anyOf: - type: string - type: 'null' description: >- The date and time when this deposit 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. example: 2025-01-01T12:34:56.000Z updatedAt: anyOf: - type: string - type: 'null' description: >- The date and time when this deposit 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. example: 2025-02-01T12:34:56.000Z voided: type: boolean description: Indicates whether the deposit was voided. example: true required: - id - objectType - createdAt - updatedAt - voided additionalProperties: false x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const response = await conductor.qbd.deposits.void('123ABC-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(response.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) response = conductor.qbd.deposits.void( id="123ABC-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(response.id) /quickbooks-desktop/discount-items: get: summary: List all discount items description: >- Returns a list of discount items. Use the `cursor` parameter to paginate through the results. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: query name: ids schema: description: >- Filter for specific discount items 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: - 80000001-1234567890 type: array items: type: string description: >- Filter for specific discount items 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. - in: query name: fullNames schema: description: >- Filter for specific discount items by their full-name(s), case-insensitive. Like `id`, `fullName` is a unique identifier for a discount item, formed by by combining the names of its parent objects with its own `name`, separated by colons. For example, if a discount item is under "Discounts" and has the `name` "10% labor discount", its `fullName` would be "Discounts:10% labor discount". **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: - Discounts:10% labor discount type: array items: type: string description: >- Filter for specific discount items by their full-name(s), case-insensitive. Like `id`, `fullName` is a unique identifier for a discount item, formed by by combining the names of its parent objects with its own `name`, separated by colons. For example, if a discount item is under "Discounts" and has the `name` "10% labor discount", its `fullName` would be "Discounts:10% labor discount". **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. - in: query name: limit schema: default: 150 description: >- 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. example: 150 type: integer minimum: 1 maximum: 150 description: >- 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. - in: query name: cursor schema: description: >- 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 type: string description: >- 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. - in: query name: status schema: description: Filter for discount items that are active, inactive, or both. example: active type: string enum: - active - all - inactive default: active description: Filter for discount items that are active, inactive, or both. - in: query name: updatedAfter schema: description: >- Filter for discount items 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. example: 2025-01-01T12:34:56.000Z type: string description: >- Filter for discount items 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. - in: query name: updatedBefore schema: description: >- Filter for discount items 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. example: 2025-02-01T12:34:56.000Z type: string description: >- Filter for discount items 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. - in: query name: nameContains schema: description: >- Filter for discount items whose `name` contains this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameStartsWith` or `nameEndsWith`. example: ABC type: string description: >- Filter for discount items whose `name` contains this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameStartsWith` or `nameEndsWith`. - in: query name: nameStartsWith schema: description: >- Filter for discount items whose `name` starts with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameEndsWith`. example: ABC type: string description: >- Filter for discount items whose `name` starts with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameEndsWith`. - in: query name: nameEndsWith schema: description: >- Filter for discount items whose `name` ends with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameStartsWith`. example: ABC type: string description: >- Filter for discount items whose `name` ends with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameStartsWith`. - in: query name: nameFrom schema: description: >- Filter for discount items whose `name` is alphabetically greater than or equal to this value. example: A type: string description: >- Filter for discount items whose `name` is alphabetically greater than or equal to this value. - in: query name: nameTo schema: description: >- Filter for discount items whose `name` is alphabetically less than or equal to this value. example: Z type: string description: >- Filter for discount items whose `name` is alphabetically less than or equal to this value. - in: query name: classIds schema: description: >- Filter for discount items of these classes. A class is a way end-users can categorize discount items in QuickBooks. example: - 80000001-1234567890 type: array items: type: string description: >- Filter for discount items of these classes. A class is a way end-users can categorize discount items in QuickBooks. responses: '200': description: Returns a list of discount items. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: objectType: description: The type of object. This value is always `"list"`. example: list type: string const: list url: type: string description: The endpoint URL where this list can be accessed. example: /v1/quickbooks-desktop/discount-items data: type: array items: $ref: '#/components/schemas/qbd_discount_item' description: The array of discount items. nextCursor: anyOf: - type: string - type: 'null' description: >- The `nextCursor` is a pagination token returned in the response when you use the `limit` parameter in your request. To retrieve subsequent pages of results, include this token as the value of the `cursor` request parameter in your following API calls. **NOTE**: The `nextCursor` value remains constant throughout the pagination process for a specific list instance; continue to use the same `nextCursor` token in each request to fetch additional pages. example: 12345678-abcd-abcd-example-1234567890ab remainingCount: anyOf: - type: number - type: 'null' description: The number of objects remaining to be fetched. example: 10 hasMore: type: boolean description: Indicates whether there are more objects to be fetched. required: - objectType - url - data - nextCursor - remainingCount - hasMore additionalProperties: false x-codeSamples: - lang: JavaScript source: |- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); // Automatically fetches more pages as needed. for await (const discountItem of conductor.qbd.discountItems.list({ conductorEndUserId: 'end_usr_1234567abcdefg', })) { console.log(discountItem.id); } - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) page = conductor.qbd.discount_items.list( conductor_end_user_id="end_usr_1234567abcdefg", ) page = page.data[0] print(page.id) post: summary: Create a discount item description: >- Creates a discount item that subtracts either a percentage or fixed amount from transaction totals. Percentage discounts only affect the preceding line, while fixed-amount discounts reduce the accumulated amount above them unless you bound the target lines with a subtotal item. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. requestBody: required: true content: application/json: schema: type: object properties: name: type: string maxLength: 31 description: >- The case-insensitive name of this discount item. Not guaranteed to be unique because it does not include the names of its hierarchical parent objects like `fullName` does. For example, two discount items could both have the `name` "10% labor discount", but they could have unique `fullName` values, such as "Discounts:10% labor discount" and "Promotions:10% labor discount". Maximum length: 31 characters. example: 10% labor discount barcode: description: The discount item's barcode. type: object properties: value: description: The item's barcode value. example: '012345678905' type: string assignEvenIfUsed: description: >- Indicates whether to assign the barcode even if it is already used. example: false default: false type: boolean allowOverride: description: Indicates whether to allow the barcode to be overridden. example: false default: false type: boolean additionalProperties: false isActive: description: >- Indicates whether this discount item is active. Inactive objects are typically hidden from views and reports in QuickBooks. Defaults to `true`. example: true default: true type: boolean classId: description: >- The discount item'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. example: 80000001-1234567890 type: string maxLength: 36 parentId: description: >- The parent discount item one level above this one in the hierarchy. For example, if this discount item has a `fullName` of "Discounts:10% labor discount", its parent has a `fullName` of "Discounts". If this discount item is at the top level, this field will be `null`. example: 80000001-1234567890 type: string maxLength: 36 description: description: >- The discount item's description that will appear on sales forms that include this item. example: 10% discount for early payment on labor charges type: string salesTaxCodeId: description: >- The default sales-tax code for this discount item, determining whether it is taxable or non-taxable. This can be overridden at the transaction-line level. 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. example: 80000001-1234567890 type: string maxLength: 36 discountRate: description: >- The monetary amount to subtract from the total or subtotal when applying this discount item to a transaction, represented as a decimal string. **NOTE**: A flat rate discount applies to ALL lines recorded above it and distributes the discount amount equally across those lines, which affects tax calculations. For example, a $10 discount applied to a $100 taxable item and $100 non-taxable item would result in a $5 taxable discount and $5 non-taxable discount. Decimal string format: up to 5 decimal places and up to 10 digits before the decimal point (for example, "123.45"). example: '25.00' type: string discountRatePercent: description: >- The percentage amount to subtract from the total or subtotal when applying this discount item to a transaction. **NOTE**: A percentage discount only applies to the line immediately above it, so tax implications only affect that specific line. example: '10.5' type: string accountId: description: >- The posting account to which transactions involving this discount item are posted for tracking discounts. example: 80000001-1234567890 type: string maxLength: 36 externalId: type: string format: uuid description: >- 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. **IMPORTANT**: This field must be formatted as a valid GUID; otherwise, QuickBooks will return an error. example: 12345678-abcd-1234-abcd-1234567890ab required: - name - accountId additionalProperties: false responses: '200': description: Returns the newly created discount item. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_discount_item' x-codeSamples: - lang: JavaScript source: |- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const discountItem = await conductor.qbd.discountItems.create({ accountId: '80000001-1234567890', name: '10% labor discount', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(discountItem.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) discount_item = conductor.qbd.discount_items.create( account_id="80000001-1234567890", name="10% labor discount", conductor_end_user_id="end_usr_1234567abcdefg", ) print(discount_item.id) /quickbooks-desktop/discount-items/{id}: get: summary: Retrieve a discount item description: >- Retrieves a discount item by ID. **IMPORTANT:** If you need to fetch multiple specific discount items 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. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the discount item to retrieve. example: 80000001-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the discount item to retrieve. responses: '200': description: Returns the specified discount item. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_discount_item' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const discountItem = await conductor.qbd.discountItems.retrieve('80000001-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(discountItem.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) discount_item = conductor.qbd.discount_items.retrieve( id="80000001-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(discount_item.id) post: summary: Update a discount item description: >- Updates a discount item, including its linked account or discount rate. When changing the account, use `updateExistingTransactionsAccount` to control whether existing transactions that reference the item should also be updated. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the discount item to update. example: 80000001-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the discount item to update. requestBody: required: true content: application/json: schema: type: object properties: revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of the discount item 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. example: '1721172183' name: description: >- The case-insensitive name of this discount item. Not guaranteed to be unique because it does not include the names of its hierarchical parent objects like `fullName` does. For example, two discount items could both have the `name` "10% labor discount", but they could have unique `fullName` values, such as "Discounts:10% labor discount" and "Promotions:10% labor discount". Maximum length: 31 characters. example: 10% labor discount type: string maxLength: 31 barcode: description: The discount item's barcode. type: object properties: value: description: The item's barcode value. example: '012345678905' type: string assignEvenIfUsed: description: >- Indicates whether to assign the barcode even if it is already used. example: false default: false type: boolean allowOverride: description: Indicates whether to allow the barcode to be overridden. example: false default: false type: boolean additionalProperties: false isActive: description: >- Indicates whether this discount item is active. Inactive objects are typically hidden from views and reports in QuickBooks. Defaults to `true`. example: true type: boolean classId: description: >- The discount item'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. example: 80000001-1234567890 type: string maxLength: 36 parentId: description: >- The parent discount item one level above this one in the hierarchy. For example, if this discount item has a `fullName` of "Discounts:10% labor discount", its parent has a `fullName` of "Discounts". If this discount item is at the top level, this field will be `null`. example: 80000001-1234567890 type: string maxLength: 36 description: description: >- The discount item's description that will appear on sales forms that include this item. example: 10% discount for early payment on labor charges type: string salesTaxCodeId: description: >- The default sales-tax code for this discount item, determining whether it is taxable or non-taxable. This can be overridden at the transaction-line level. 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. example: 80000001-1234567890 type: string maxLength: 36 discountRate: description: >- The monetary amount to subtract from the total or subtotal when applying this discount item to a transaction, represented as a decimal string. **NOTE**: A flat rate discount applies to ALL lines recorded above it and distributes the discount amount equally across those lines, which affects tax calculations. For example, a $10 discount applied to a $100 taxable item and $100 non-taxable item would result in a $5 taxable discount and $5 non-taxable discount. Decimal string format: up to 5 decimal places and up to 10 digits before the decimal point (for example, "123.45"). example: '25.00' type: string discountRatePercent: description: >- The percentage amount to subtract from the total or subtotal when applying this discount item to a transaction. **NOTE**: A percentage discount only applies to the line immediately above it, so tax implications only affect that specific line. example: '10.5' type: string accountId: description: >- The posting account to which transactions involving this discount item are posted for tracking discounts. example: 80000001-1234567890 type: string maxLength: 36 updateExistingTransactionsAccount: description: >- When `true`, applies the new account (specified by the `accountId` field) to all existing transactions associated with this discount item. This updates historical data and should be used with caution. The update will fail if any affected transaction falls within a closed accounting period. If this parameter is not specified, QuickBooks will prompt the user before making any changes. example: false type: boolean required: - revisionNumber additionalProperties: false responses: '200': description: Returns the updated discount item. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_discount_item' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const discountItem = await conductor.qbd.discountItems.update('80000001-1234567890', { revisionNumber: '1721172183', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(discountItem.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) discount_item = conductor.qbd.discount_items.update( id="80000001-1234567890", revision_number="1721172183", conductor_end_user_id="end_usr_1234567abcdefg", ) print(discount_item.id) /quickbooks-desktop/employees: get: summary: List all employees description: >- Returns a list of employees. **NOTE:** QuickBooks Desktop does not support pagination for employees; hence, there is no `cursor` parameter. Users typically have few employees. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: query name: ids schema: description: >- Filter for specific employees 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: - 80000001-1234567890 type: array items: type: string description: >- Filter for specific employees 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. - in: query name: names schema: description: >- Filter for specific employees by their name(s), case-insensitive. Like `id`, `name` is a unique identifier for an employee. **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: - John Doe type: array items: type: string description: >- Filter for specific employees by their name(s), case-insensitive. Like `id`, `name` is a unique identifier for an employee. **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. - in: query name: limit schema: description: >- The maximum number of objects to return. **IMPORTANT**: QuickBooks Desktop does not support cursor-based pagination for employees. 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 employees without limit, unlike paginated endpoints which default to 150 records. This is acceptable because employees typically have low record counts. example: 10 type: integer minimum: 1 description: >- The maximum number of objects to return. **IMPORTANT**: QuickBooks Desktop does not support cursor-based pagination for employees. 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 employees without limit, unlike paginated endpoints which default to 150 records. This is acceptable because employees typically have low record counts. - in: query name: status schema: description: Filter for employees that are active, inactive, or both. example: active type: string enum: - active - all - inactive default: active description: Filter for employees that are active, inactive, or both. - in: query name: updatedAfter schema: description: >- Filter for employees 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. example: 2025-01-01T12:34:56.000Z type: string description: >- Filter for employees 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. - in: query name: updatedBefore schema: description: >- Filter for employees 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. example: 2025-02-01T12:34:56.000Z type: string description: >- Filter for employees 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. - in: query name: nameContains schema: description: >- Filter for employees whose `name` contains this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameStartsWith` or `nameEndsWith`. example: ABC type: string description: >- Filter for employees whose `name` contains this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameStartsWith` or `nameEndsWith`. - in: query name: nameStartsWith schema: description: >- Filter for employees whose `name` starts with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameEndsWith`. example: ABC type: string description: >- Filter for employees whose `name` starts with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameEndsWith`. - in: query name: nameEndsWith schema: description: >- Filter for employees whose `name` ends with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameStartsWith`. example: ABC type: string description: >- Filter for employees whose `name` ends with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameStartsWith`. - in: query name: nameFrom schema: description: >- Filter for employees whose `name` is alphabetically greater than or equal to this value. example: A type: string description: >- Filter for employees whose `name` is alphabetically greater than or equal to this value. - in: query name: nameTo schema: description: >- Filter for employees whose `name` is alphabetically less than or equal to this value. example: Z type: string description: >- Filter for employees whose `name` is alphabetically less than or equal to this value. responses: '200': description: Returns a list of employees. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: objectType: description: The type of object. This value is always `"list"`. example: list type: string const: list url: type: string description: The endpoint URL where this list can be accessed. example: /v1/quickbooks-desktop/employees data: type: array items: $ref: '#/components/schemas/qbd_employee' description: The array of employees. required: - objectType - url - data additionalProperties: false x-codeSamples: - lang: JavaScript source: |- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const employees = await conductor.qbd.employees.list({ conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(employees.data); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) employees = conductor.qbd.employees.list( conductor_end_user_id="end_usr_1234567abcdefg", ) print(employees.data) post: summary: Create an employee description: >- Creates an employee record that captures personal details, contact information, employment dates, and payroll settings in a single request so the employee is ready for scheduling, time tracking, and payroll processing. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. requestBody: required: true content: application/json: schema: type: object properties: isActive: description: >- Indicates whether this employee is active. Inactive objects are typically hidden from views and reports in QuickBooks. Defaults to `true`. example: true default: true type: boolean salutation: description: >- The employee's formal salutation title that precedes their name, such as "Mr.", "Ms.", or "Dr.". example: Dr. type: string firstName: description: |- The employee's first name. Maximum length: 25 characters. example: John type: string maxLength: 25 middleName: description: |- The employee's middle name. Maximum length: 5 characters. example: A. type: string maxLength: 5 lastName: description: |- The employee's last name. Maximum length: 25 characters. example: Doe type: string maxLength: 25 jobTitle: description: The employee's job title. example: Purchasing Manager type: string supervisorId: description: >- The employee's supervisor. Found in the "employment job details" section of the employee's record in QuickBooks. example: 80000001-1234567890 type: string maxLength: 36 department: description: >- The employee's department. Found in the "employment job details" section of the employee's record in QuickBooks. example: Sales type: string description: description: >- A description of this employee. Found in the "employment job details" section of the employee's record in QuickBooks. example: This employee is a key employee. type: string targetBonus: description: >- The target bonus for this employee, represented as a decimal string. Found in the "employment job details" section of the employee's record in QuickBooks. example: '10000.00' type: string address: description: >- The employee's address. If the company uses QuickBooks Payroll for this employee, this address must specify a complete address, including city, state, ZIP (or postal) code, and at least one line of the street address. type: object properties: line1: description: >- The first line of the employee address (e.g., street, PO Box, or company name). Maximum length: 41 characters. example: Conductor Labs Inc. type: string maxLength: 41 line2: description: >- The second line of the employee address, if needed (e.g., apartment, suite, unit, or building). Maximum length: 41 characters. example: 540 Market St. type: string maxLength: 41 line3: description: |- The third line of the employee address, if needed. Maximum length: 41 characters. example: Suite 100 type: string maxLength: 41 line4: description: |- The fourth line of the employee address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 city: description: >- The city, district, suburb, town, or village name of the employee address. Maximum length: 31 characters. example: San Francisco type: string maxLength: 31 state: description: >- The U.S. state or Canadian province of the employee address. QuickBooks requires this field to be a two-letter abbreviation (e.g., "CA" for California or "ON" for Ontario). See enum for all possible values. QuickBooks may reject values that the connected company file's edition does not support (e.g., a Canadian province on a U.S. company file). example: CA type: string enum: - none - armed_forces_americas - armed_forces_europe - armed_forces_pacific - AB - AK - AL - AR - AZ - BC - CA - CO - CT - DC - DE - FL - GA - HI - IA - ID - IL - IN - KS - KY - LA - MA - MB - MD - ME - MI - MN - MO - MS - MT - NB - NC - ND - NE - NH - NJ - NL - NM - NS - NT - NU - NV - NY - OH - OK - 'ON' - OR - PA - PE - PR - QC - RI - SC - SD - SK - TN - TX - UT - VA - VT - WA - WI - WV - WY - YT postalCode: description: |- The postal code or ZIP code of the employee address. Maximum length: 13 characters. example: '94110' type: string maxLength: 13 country: description: The country name of the employee address. example: United States type: string additionalProperties: false printAs: description: >- The name to use when printing this employee from QuickBooks. By default, this is the same as the `name` field. example: John Doe type: string phone: description: |- The employee's primary telephone number. Maximum length: 21 characters. example: +1-555-123-4567 type: string maxLength: 21 mobile: description: |- The employee's mobile phone number. Maximum length: 21 characters. example: +1-555-555-1212 type: string maxLength: 21 pager: description: |- The employee's pager number. Maximum length: 21 characters. example: +1-555-555-1212 type: string maxLength: 21 pagerPin: description: The employee's pager PIN. example: '1234' type: string alternatePhone: description: |- The employee's alternate telephone number. Maximum length: 21 characters. example: +1-555-987-6543 type: string maxLength: 21 fax: description: |- The employee's fax number. Maximum length: 21 characters. example: +1-555-555-1212 type: string maxLength: 21 ssn: description: >- The employee's Social Security Number. The value can be with or without dashes. **NOTE**: This field cannot be changed after the employee is created. example: 123-45-6789 type: string email: description: The employee's email address. example: employee@example.com type: string customContactFields: description: >- Additional custom contact fields for this employee, such as phone numbers or email addresses. minItems: 1 type: array items: type: object properties: name: type: string description: >- The name of the contact field (e.g., "old address", "secondary phone"). example: Main Phone value: type: string description: The value of the contact field. example: 555-123-4567 required: - name - value additionalProperties: false emergencyContact: description: The employee's emergency contacts. type: object properties: primaryContact: description: The employee's primary emergency contact. type: object properties: name: type: string description: >- The name of the contact field (e.g., "old address", "secondary phone"). example: Main Phone value: type: string description: The value of the contact field. example: 555-123-4567 relation: description: The relationship of the employee to the employee. example: spouse type: string enum: - brother - daughter - father - friend - mother - other - partner - sister - son - spouse required: - name - value additionalProperties: false secondaryContact: description: The employee's secondary emergency contact. type: object properties: name: type: string description: >- The name of the contact field (e.g., "old address", "secondary phone"). example: Main Phone value: type: string description: The value of the contact field. example: 555-123-4567 relation: description: The relationship of the employee to the employee. example: spouse type: string enum: - brother - daughter - father - friend - mother - other - partner - sister - son - spouse required: - name - value additionalProperties: false additionalProperties: false employeeType: description: >- The employee type. This affects payroll taxes - a statutory employee is defined as an employee by statute. Note that owners/partners are typically on the "Other Names" list in QuickBooks, but if listed as an employee their type will be `owner`. example: regular type: string enum: - officer - owner - regular - statutory default: regular employmentStatus: description: >- Indicates whether this employee is a part-time or full-time employee. example: full_time type: string enum: - full_time - part_time overtimeExemptStatus: description: > Indicates whether this employee is exempt from overtime pay. This classification is based on U.S. labor laws (FLSA). example: exempt type: string enum: - exempt - non_exempt keyEmployeeStatus: description: Indicates whether this employee is a key employee. example: key_employee type: string enum: - key_employee - non_key_employee gender: description: This employee's gender. example: male type: string enum: - male - female hiredDate: description: >- The date this employee was hired, in ISO 8601 format (YYYY-MM-DD). example: '2024-01-01' type: string format: date originalHireDate: description: >- The original hire date for this employee, in ISO 8601 format (YYYY-MM-DD). example: '2024-01-01' type: string format: date adjustedServiceDate: description: >- The adjusted service date for this employee, in ISO 8601 format (YYYY-MM-DD). This date accounts for previous employment periods or leaves that affect seniority. example: '2024-01-01' type: string format: date terminationDate: description: >- The date this employee's employment ended with the company, in ISO 8601 format (YYYY-MM-DD). This is also known as the released date or separation date. example: '2024-01-01' type: string format: date birthDate: description: >- This employee's date of birth, in ISO 8601 format (YYYY-MM-DD). example: '1990-01-01' type: string format: date usCitizenshipStatus: description: Indicates whether this employee is a U.S. citizen. example: citizen type: string enum: - citizen - non_citizen ethnicity: description: This employee's ethnicity. example: asian type: string enum: - american_indian - asian - black - hawaiian - hispanic - white - two_or_more_races disabilityStatus: description: Indicates whether this employee is disabled. example: disabled type: string enum: - disabled - non_disabled disabilityDescription: description: A description of this employee's disability. example: Cerebral Palsy type: string i9OnFileStatus: description: Indicates whether this employee's I-9 is on file. example: on_file type: string enum: - on_file - not_on_file workAuthorizationExpirationDate: description: >- The date this employee's work authorization expires, in ISO 8601 format (YYYY-MM-DD). example: '2024-01-01' type: string format: date usVeteranStatus: description: Indicates whether this employee is a U.S. veteran. example: veteran type: string enum: - veteran - non_veteran militaryStatus: description: This employee's military status if they are a U.S. veteran. example: active type: string enum: - active - reserve accountNumber: description: >- The employee's account number, which appears in the QuickBooks chart of accounts, reports, and graphs. Note that if the "Use Account Numbers" preference is turned off in QuickBooks, the account number may not be visible in the user interface, but it can still be set and retrieved through the API. example: '1010' type: string note: description: A note or comment about this employee. example: This employee is a key employee. type: string additionalNotes: description: Additional notes about this employee. minItems: 1 type: array items: type: object properties: note: type: string description: The text of this note. example: This is a fun note. required: - note additionalProperties: false billingRateId: description: >- The employee's billing rate, used to override service item rates in time tracking activities. example: 80000001-1234567890 type: string maxLength: 36 employeePayroll: description: The employee's payroll information. type: object properties: payPeriod: description: >- How frequently this employee is paid (e.g., weekly, biweekly, monthly). This determines the schedule for generating paychecks. example: weekly type: string enum: - biweekly - daily - monthly - quarterly - semimonthly - weekly - yearly classId: description: >- The employee'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. example: 80000001-1234567890 type: string maxLength: 36 earnings: description: The employee's earnings. minItems: 1 type: array items: type: object properties: payrollWageItemId: description: >- The payroll wage item that defines how this employee is paid (e.g., Regular Pay, Overtime Pay). This determines the payment scheme used for payroll calculations. example: 80000001-1234567890 type: string maxLength: 36 rate: description: >- The hourly rate for this employee, represented as a decimal string. Decimal string format: up to 5 decimal places and up to 10 digits before the decimal point (for example, "123.45"). example: '10.00' type: string ratePercent: description: >- The hourly rate for this employee expressed as a percentage. example: '10.5' type: string required: - payrollWageItemId additionalProperties: false useTimeDataToCreatePaychecks: description: >- Indicates whether this employee is using time-tracking data to create paychecks. example: uses_time_data type: string enum: - does_not_use_time_data - not_set - uses_time_data sickHours: description: >- The employee's sick hours, including how sick time is accrued and the total hours accrued. type: object properties: hoursAvailable: description: >- The total number of sick hours currently available for the employee to use, in ISO 8601 format for time intervals (PTnHnMnS). For example, 1 hour and 30 minutes is represented as PT1H30M. Defaults to 0. example: PT8H30M type: string accrualPeriod: description: >- How frequently the employee's sick hours are accrued. example: accrues_per_paycheck type: string enum: - accrues_annually - accrues_hourly - accrues_per_paycheck hoursAccruedPerPeriod: description: >- The number of sick hours the employee will accrue per accrual period, in ISO 8601 format for time intervals (PTnHnMnS). For example, 1 hour and 30 minutes is represented as PT1H30M. example: PT8H0M type: string maximumHours: description: >- The maximum number of sick hours the employee can accrue, in ISO 8601 format for time intervals (PTnHnMnS). For example, 1 hour and 30 minutes is represented as PT1H30M. example: PT80H0M type: string resetsHoursEachYear: description: >- Indicates whether the employee's sick hours reset to zero at the beginning of the new year. example: false type: boolean hoursUsed: description: >- The number of sick hours the employee has used, in ISO 8601 format for time intervals (PTnHnMnS). For example, 1 hour and 30 minutes is represented as PT1H30M. example: PT2H45M type: string accrualStartDate: description: >- The date the employee's sick hours began to accrue, in ISO 8601 format (YYYY-MM-DD). example: '2024-01-01' type: string format: date additionalProperties: false vacationHours: description: >- The employee's vacation hours, including how vacation time is accrued and the total hours accrued. type: object properties: hoursAvailable: description: >- The total number of vacation hours currently available for the employee to use, in ISO 8601 format for time intervals (PTnHnMnS). For example, 1 hour and 30 minutes is represented as PT1H30M. Defaults to 0. example: PT8H30M type: string accrualPeriod: description: >- How frequently the employee's vacation hours are accrued. example: accrues_per_paycheck type: string enum: - accrues_annually - accrues_hourly - accrues_per_paycheck hoursAccruedPerPeriod: description: >- The number of vacation hours the employee will accrue per accrual period, in ISO 8601 format for time intervals (PTnHnMnS). For example, 1 hour and 30 minutes is represented as PT1H30M. example: PT8H0M type: string maximumHours: description: >- The maximum number of vacation hours the employee can accrue, in ISO 8601 format for time intervals (PTnHnMnS). For example, 1 hour and 30 minutes is represented as PT1H30M. example: PT80H0M type: string resetsHoursEachYear: description: >- Indicates whether the employee's vacation hours reset to zero at the beginning of the new year. example: false type: boolean hoursUsed: description: >- The number of vacation hours the employee has used, in ISO 8601 format for time intervals (PTnHnMnS). For example, 1 hour and 30 minutes is represented as PT1H30M. example: PT2H45M type: string accrualStartDate: description: >- The date the employee's vacation hours began to accrue, in ISO 8601 format (YYYY-MM-DD). example: '2024-01-01' type: string format: date additionalProperties: false additionalProperties: false externalId: type: string format: uuid description: >- 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. **IMPORTANT**: This field must be formatted as a valid GUID; otherwise, QuickBooks will return an error. example: 12345678-abcd-1234-abcd-1234567890ab additionalProperties: false responses: '200': description: Returns the newly created employee. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_employee' x-codeSamples: - lang: JavaScript source: |- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const employee = await conductor.qbd.employees.create({ conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(employee.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) employee = conductor.qbd.employees.create( conductor_end_user_id="end_usr_1234567abcdefg", ) print(employee.id) /quickbooks-desktop/employees/{id}: get: summary: Retrieve an employee description: >- Retrieves an employee by ID. **IMPORTANT:** If you need to fetch multiple specific employees 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. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the employee to retrieve. example: 80000001-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the employee to retrieve. responses: '200': description: Returns the specified employee. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_employee' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const employee = await conductor.qbd.employees.retrieve('80000001-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(employee.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) employee = conductor.qbd.employees.retrieve( id="80000001-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(employee.id) post: summary: Update an employee description: >- Updates an employee record, allowing you to revise contact details, employment status dates, supervisory assignments, payroll configuration, and additional notes to keep workforce data current. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the employee to update. example: 80000001-1234567890 required: true description: The QuickBooks-assigned unique identifier of the employee to update. requestBody: required: true content: application/json: schema: type: object properties: revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of the employee 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. example: '1721172183' isActive: description: >- Indicates whether this employee is active. Inactive objects are typically hidden from views and reports in QuickBooks. Defaults to `true`. example: true type: boolean salutation: description: >- The employee's formal salutation title that precedes their name, such as "Mr.", "Ms.", or "Dr.". example: Dr. type: string firstName: description: |- The employee's first name. Maximum length: 25 characters. example: John type: string maxLength: 25 middleName: description: |- The employee's middle name. Maximum length: 5 characters. example: A. type: string maxLength: 5 lastName: description: |- The employee's last name. Maximum length: 25 characters. example: Doe type: string maxLength: 25 jobTitle: description: The employee's job title. example: Purchasing Manager type: string supervisorId: description: >- The employee's supervisor. Found in the "employment job details" section of the employee's record in QuickBooks. example: 80000001-1234567890 type: string maxLength: 36 department: description: >- The employee's department. Found in the "employment job details" section of the employee's record in QuickBooks. example: Sales type: string description: description: >- A description of this employee. Found in the "employment job details" section of the employee's record in QuickBooks. example: This employee is a key employee. type: string targetBonus: description: >- The target bonus for this employee, represented as a decimal string. Found in the "employment job details" section of the employee's record in QuickBooks. example: '10000.00' type: string address: description: >- The employee's address. If the company uses QuickBooks Payroll for this employee, this address must specify a complete address, including city, state, ZIP (or postal) code, and at least one line of the street address. type: object properties: line1: description: >- The first line of the employee address (e.g., street, PO Box, or company name). Maximum length: 41 characters. example: Conductor Labs Inc. type: string maxLength: 41 line2: description: >- The second line of the employee address, if needed (e.g., apartment, suite, unit, or building). Maximum length: 41 characters. example: 540 Market St. type: string maxLength: 41 line3: description: |- The third line of the employee address, if needed. Maximum length: 41 characters. example: Suite 100 type: string maxLength: 41 line4: description: |- The fourth line of the employee address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 city: description: >- The city, district, suburb, town, or village name of the employee address. Maximum length: 31 characters. example: San Francisco type: string maxLength: 31 state: description: >- The U.S. state or Canadian province of the employee address. QuickBooks requires this field to be a two-letter abbreviation (e.g., "CA" for California or "ON" for Ontario). See enum for all possible values. QuickBooks may reject values that the connected company file's edition does not support (e.g., a Canadian province on a U.S. company file). example: CA type: string enum: - none - armed_forces_americas - armed_forces_europe - armed_forces_pacific - AB - AK - AL - AR - AZ - BC - CA - CO - CT - DC - DE - FL - GA - HI - IA - ID - IL - IN - KS - KY - LA - MA - MB - MD - ME - MI - MN - MO - MS - MT - NB - NC - ND - NE - NH - NJ - NL - NM - NS - NT - NU - NV - NY - OH - OK - 'ON' - OR - PA - PE - PR - QC - RI - SC - SD - SK - TN - TX - UT - VA - VT - WA - WI - WV - WY - YT postalCode: description: |- The postal code or ZIP code of the employee address. Maximum length: 13 characters. example: '94110' type: string maxLength: 13 country: description: The country name of the employee address. example: United States type: string additionalProperties: false printAs: description: >- The name to use when printing this employee from QuickBooks. By default, this is the same as the `name` field. example: John Doe type: string phone: description: |- The employee's primary telephone number. Maximum length: 21 characters. example: +1-555-123-4567 type: string maxLength: 21 mobile: description: |- The employee's mobile phone number. Maximum length: 21 characters. example: +1-555-555-1212 type: string maxLength: 21 pager: description: |- The employee's pager number. Maximum length: 21 characters. example: +1-555-555-1212 type: string maxLength: 21 pagerPin: description: The employee's pager PIN. example: '1234' type: string alternatePhone: description: |- The employee's alternate telephone number. Maximum length: 21 characters. example: +1-555-987-6543 type: string maxLength: 21 fax: description: |- The employee's fax number. Maximum length: 21 characters. example: +1-555-555-1212 type: string maxLength: 21 email: description: The employee's email address. example: employee@example.com type: string customContactFields: description: >- Additional custom contact fields for this employee, such as phone numbers or email addresses. minItems: 1 type: array items: type: object properties: name: type: string description: >- The name of the contact field (e.g., "old address", "secondary phone"). example: Main Phone value: type: string description: The value of the contact field. example: 555-123-4567 required: - name - value additionalProperties: false emergencyContact: description: The employee's emergency contacts. type: object properties: primaryContact: description: The employee's primary emergency contact. type: object properties: name: type: string description: >- The name of the contact field (e.g., "old address", "secondary phone"). example: Main Phone value: type: string description: The value of the contact field. example: 555-123-4567 relation: description: The relationship of the employee to the employee. example: spouse type: string enum: - brother - daughter - father - friend - mother - other - partner - sister - son - spouse required: - name - value additionalProperties: false secondaryContact: description: The employee's secondary emergency contact. type: object properties: name: type: string description: >- The name of the contact field (e.g., "old address", "secondary phone"). example: Main Phone value: type: string description: The value of the contact field. example: 555-123-4567 relation: description: The relationship of the employee to the employee. example: spouse type: string enum: - brother - daughter - father - friend - mother - other - partner - sister - son - spouse required: - name - value additionalProperties: false additionalProperties: false employeeType: description: >- The employee type. This affects payroll taxes - a statutory employee is defined as an employee by statute. Note that owners/partners are typically on the "Other Names" list in QuickBooks, but if listed as an employee their type will be `owner`. example: regular type: string enum: - officer - owner - regular - statutory employmentStatus: description: >- Indicates whether this employee is a part-time or full-time employee. example: full_time type: string enum: - full_time - part_time overtimeExemptStatus: description: > Indicates whether this employee is exempt from overtime pay. This classification is based on U.S. labor laws (FLSA). example: exempt type: string enum: - exempt - non_exempt keyEmployeeStatus: description: Indicates whether this employee is a key employee. example: key_employee type: string enum: - key_employee - non_key_employee hiredDate: description: >- The date this employee was hired, in ISO 8601 format (YYYY-MM-DD). example: '2024-01-01' type: string format: date originalHireDate: description: >- The original hire date for this employee, in ISO 8601 format (YYYY-MM-DD). example: '2024-01-01' type: string format: date adjustedServiceDate: description: >- The adjusted service date for this employee, in ISO 8601 format (YYYY-MM-DD). This date accounts for previous employment periods or leaves that affect seniority. example: '2024-01-01' type: string format: date terminationDate: description: >- The date this employee's employment ended with the company, in ISO 8601 format (YYYY-MM-DD). This is also known as the released date or separation date. example: '2024-01-01' type: string format: date birthDate: description: >- This employee's date of birth, in ISO 8601 format (YYYY-MM-DD). example: '1990-01-01' type: string format: date usCitizenshipStatus: description: Indicates whether this employee is a U.S. citizen. example: citizen type: string enum: - citizen - non_citizen ethnicity: description: This employee's ethnicity. example: asian type: string enum: - american_indian - asian - black - hawaiian - hispanic - white - two_or_more_races disabilityStatus: description: Indicates whether this employee is disabled. example: disabled type: string enum: - disabled - non_disabled disabilityDescription: description: A description of this employee's disability. example: Cerebral Palsy type: string i9OnFileStatus: description: Indicates whether this employee's I-9 is on file. example: on_file type: string enum: - on_file - not_on_file workAuthorizationExpirationDate: description: >- The date this employee's work authorization expires, in ISO 8601 format (YYYY-MM-DD). example: '2024-01-01' type: string format: date usVeteranStatus: description: Indicates whether this employee is a U.S. veteran. example: veteran type: string enum: - veteran - non_veteran militaryStatus: description: This employee's military status if they are a U.S. veteran. example: active type: string enum: - active - reserve accountNumber: description: >- The employee's account number, which appears in the QuickBooks chart of accounts, reports, and graphs. Note that if the "Use Account Numbers" preference is turned off in QuickBooks, the account number may not be visible in the user interface, but it can still be set and retrieved through the API. example: '1010' type: string note: description: A note or comment about this employee. example: This employee is a key employee. type: string additionalNotes: description: Additional notes about this employee. minItems: 1 type: array items: type: object properties: id: description: The ID of the note to update. example: 1 type: number note: type: string description: The text of this note. example: This is a fun note. required: - id - note additionalProperties: false billingRateId: description: >- The employee's billing rate, used to override service item rates in time tracking activities. example: 80000001-1234567890 type: string maxLength: 36 employeePayroll: description: >- The employee's payroll information. **IMPORTANT**: QuickBooks Desktop requires the connected app to have personal data access enabled to update this field. If updating this field fails with a personal data permission error, confirm this setting is enabled in QuickBooks Desktop: sign in as Admin in Single-User Mode and go to `Edit > Preferences > Integrated Applications > Company Preferences`, select the app, click `Properties`, then check "Allow this application to access personal data such as Social Security Numbers and customer credit card information". type: object properties: payPeriod: description: >- How frequently this employee is paid (e.g., weekly, biweekly, monthly). This determines the schedule for generating paychecks. example: weekly type: string enum: - biweekly - daily - monthly - quarterly - semimonthly - weekly - yearly classId: description: >- The employee'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. example: 80000001-1234567890 type: string maxLength: 36 deleteAllEarnings: description: >- When `true`, deletes all earnings records for this employee. example: false type: boolean earnings: description: >- The employee's earnings. **IMPORTANT**: When updating employees, if you include any earnings records in your update request, QuickBooks will delete all existing earnings records for this employee and replace them with the new records you provide. If you do not include any earnings records, the existing earnings records will remain unchanged. To delete all earnings records without adding new ones, set the `deleteAllEarnings` field to `true`. minItems: 1 type: array items: type: object properties: payrollWageItemId: description: >- The payroll wage item that defines how this employee is paid (e.g., Regular Pay, Overtime Pay). This determines the payment scheme used for payroll calculations. example: 80000001-1234567890 type: string maxLength: 36 rate: description: >- The hourly rate for this employee, represented as a decimal string. Decimal string format: up to 5 decimal places and up to 10 digits before the decimal point (for example, "123.45"). example: '10.00' type: string ratePercent: description: >- The hourly rate for this employee expressed as a percentage. example: '10.5' type: string required: - payrollWageItemId additionalProperties: false useTimeDataToCreatePaychecks: description: >- Indicates whether this employee is using time-tracking data to create paychecks. example: uses_time_data type: string enum: - does_not_use_time_data - not_set - uses_time_data sickHours: description: >- The employee's sick hours, including how sick time is accrued and the total hours accrued. type: object properties: hoursAvailable: description: >- The total number of sick hours currently available for the employee to use, in ISO 8601 format for time intervals (PTnHnMnS). For example, 1 hour and 30 minutes is represented as PT1H30M. Defaults to 0. example: PT8H30M type: string accrualPeriod: description: >- How frequently the employee's sick hours are accrued. example: accrues_per_paycheck type: string enum: - accrues_annually - accrues_hourly - accrues_per_paycheck hoursAccruedPerPeriod: description: >- The number of sick hours the employee will accrue per accrual period, in ISO 8601 format for time intervals (PTnHnMnS). For example, 1 hour and 30 minutes is represented as PT1H30M. example: PT8H0M type: string maximumHours: description: >- The maximum number of sick hours the employee can accrue, in ISO 8601 format for time intervals (PTnHnMnS). For example, 1 hour and 30 minutes is represented as PT1H30M. example: PT80H0M type: string resetsHoursEachYear: description: >- Indicates whether the employee's sick hours reset to zero at the beginning of the new year. example: false type: boolean hoursUsed: description: >- The number of sick hours the employee has used, in ISO 8601 format for time intervals (PTnHnMnS). For example, 1 hour and 30 minutes is represented as PT1H30M. example: PT2H45M type: string accrualStartDate: description: >- The date the employee's sick hours began to accrue, in ISO 8601 format (YYYY-MM-DD). example: '2024-01-01' type: string format: date additionalProperties: false vacationHours: description: >- The employee's vacation hours, including how vacation time is accrued and the total hours accrued. type: object properties: hoursAvailable: description: >- The total number of vacation hours currently available for the employee to use, in ISO 8601 format for time intervals (PTnHnMnS). For example, 1 hour and 30 minutes is represented as PT1H30M. Defaults to 0. example: PT8H30M type: string accrualPeriod: description: >- How frequently the employee's vacation hours are accrued. example: accrues_per_paycheck type: string enum: - accrues_annually - accrues_hourly - accrues_per_paycheck hoursAccruedPerPeriod: description: >- The number of vacation hours the employee will accrue per accrual period, in ISO 8601 format for time intervals (PTnHnMnS). For example, 1 hour and 30 minutes is represented as PT1H30M. example: PT8H0M type: string maximumHours: description: >- The maximum number of vacation hours the employee can accrue, in ISO 8601 format for time intervals (PTnHnMnS). For example, 1 hour and 30 minutes is represented as PT1H30M. example: PT80H0M type: string resetsHoursEachYear: description: >- Indicates whether the employee's vacation hours reset to zero at the beginning of the new year. example: false type: boolean hoursUsed: description: >- The number of vacation hours the employee has used, in ISO 8601 format for time intervals (PTnHnMnS). For example, 1 hour and 30 minutes is represented as PT1H30M. example: PT2H45M type: string accrualStartDate: description: >- The date the employee's vacation hours began to accrue, in ISO 8601 format (YYYY-MM-DD). example: '2024-01-01' type: string format: date additionalProperties: false additionalProperties: false required: - revisionNumber additionalProperties: false responses: '200': description: Returns the updated employee. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_employee' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const employee = await conductor.qbd.employees.update('80000001-1234567890', { revisionNumber: '1721172183', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(employee.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) employee = conductor.qbd.employees.update( id="80000001-1234567890", revision_number="1721172183", conductor_end_user_id="end_usr_1234567abcdefg", ) print(employee.id) /quickbooks-desktop/estimates: get: summary: List all estimates description: >- Returns a list of estimates. Use the `cursor` parameter to paginate through the results. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: query name: ids schema: description: >- Filter for specific estimates 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 type: array items: type: string description: >- Filter for specific estimates 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. - in: query name: refNumbers schema: description: >- Filter for specific estimates 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: - ESTIMATE-1234 type: array items: type: string description: >- Filter for specific estimates 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. - in: query name: limit schema: default: 150 description: >- 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. example: 150 type: integer minimum: 1 maximum: 150 description: >- 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. - in: query name: cursor schema: description: >- 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 type: string description: >- 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. - in: query name: updatedAfter schema: description: >- Filter for estimates 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. example: 2025-01-01T12:34:56.000Z type: string description: >- Filter for estimates 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. - in: query name: updatedBefore schema: description: >- Filter for estimates 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. example: 2025-02-01T12:34:56.000Z type: string description: >- Filter for estimates 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. - in: query name: transactionDateFrom schema: description: >- Filter for estimates 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-01` → `2025-01-01T00:00:00`). example: '2025-01-01' type: string format: date description: >- Filter for estimates 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-01` → `2025-01-01T00:00:00`). - in: query name: transactionDateTo schema: description: >- Filter for estimates 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-01` → `2025-01-01T23:59:59`). example: '2025-02-01' type: string format: date description: >- Filter for estimates 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-01` → `2025-01-01T23:59:59`). - in: query name: customerIds schema: description: Filter for estimates created for these customers. example: - 80000001-1234567890 type: array items: type: string description: Filter for estimates created for these customers. - in: query name: accountIds schema: description: Filter for estimates associated with these accounts. example: - 80000001-1234567890 type: array items: type: string description: Filter for estimates associated with these accounts. - in: query name: refNumberContains schema: description: >- Filter for estimates whose `refNumber` contains this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberStartsWith` or `refNumberEndsWith`. example: EST-1234 type: string description: >- Filter for estimates whose `refNumber` contains this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberStartsWith` or `refNumberEndsWith`. - in: query name: refNumberStartsWith schema: description: >- Filter for estimates whose `refNumber` starts with this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberContains` or `refNumberEndsWith`. example: EST type: string description: >- Filter for estimates whose `refNumber` starts with this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberContains` or `refNumberEndsWith`. - in: query name: refNumberEndsWith schema: description: >- Filter for estimates whose `refNumber` ends with this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberContains` or `refNumberStartsWith`. example: '1234' type: string description: >- Filter for estimates whose `refNumber` ends with this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberContains` or `refNumberStartsWith`. - in: query name: refNumberFrom schema: description: >- Filter for estimates 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: EST-0001 type: string description: >- Filter for estimates 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. - in: query name: refNumberTo schema: description: >- Filter for estimates 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: EST-9999 type: string description: >- Filter for estimates 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. - in: query name: currencyIds schema: description: Filter for estimates in these currencies. example: - 80000001-1234567890 type: array items: type: string description: Filter for estimates in these currencies. - in: query name: includeLineItems schema: description: Whether to include line items in the response. Defaults to `true`. example: true type: boolean default: true description: Whether to include line items in the response. Defaults to `true`. - in: query name: includeLinkedTransactions schema: description: >- Whether to include linked transactions in the response. Defaults to `false`. For example, a payment linked to the corresponding estimate. example: false type: boolean default: false description: >- Whether to include linked transactions in the response. Defaults to `false`. For example, a payment linked to the corresponding estimate. responses: '200': description: Returns a list of estimates. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: objectType: description: The type of object. This value is always `"list"`. example: list type: string const: list url: type: string description: The endpoint URL where this list can be accessed. example: /v1/quickbooks-desktop/estimates data: type: array items: $ref: '#/components/schemas/qbd_estimate' description: The array of estimates. nextCursor: anyOf: - type: string - type: 'null' description: >- The `nextCursor` is a pagination token returned in the response when you use the `limit` parameter in your request. To retrieve subsequent pages of results, include this token as the value of the `cursor` request parameter in your following API calls. **NOTE**: The `nextCursor` value remains constant throughout the pagination process for a specific list instance; continue to use the same `nextCursor` token in each request to fetch additional pages. example: 12345678-abcd-abcd-example-1234567890ab remainingCount: anyOf: - type: number - type: 'null' description: The number of objects remaining to be fetched. example: 10 hasMore: type: boolean description: Indicates whether there are more objects to be fetched. required: - objectType - url - data - nextCursor - remainingCount - hasMore additionalProperties: false x-codeSamples: - lang: JavaScript source: |- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); // Automatically fetches more pages as needed. for await (const estimate of conductor.qbd.estimates.list({ conductorEndUserId: 'end_usr_1234567abcdefg', })) { console.log(estimate.id); } - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) page = conductor.qbd.estimates.list( conductor_end_user_id="end_usr_1234567abcdefg", ) page = page.data[0] print(page.id) post: summary: Create an estimate description: Creates a new estimate. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. requestBody: required: true content: application/json: schema: type: object properties: customerId: description: The customer or customer-job associated with this estimate. example: 80000001-1234567890 type: string maxLength: 36 classId: description: >- The estimate'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 estimate's line items unless overridden at the line item level. example: 80000001-1234567890 type: string maxLength: 36 documentTemplateId: description: >- The predefined template in QuickBooks that determines the layout and formatting for this estimate when printed or displayed. example: 80000001-1234567890 type: string maxLength: 36 transactionDate: type: string format: date description: The date of this estimate, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-01' refNumber: description: >- The case-sensitive user-defined reference number for this estimate, 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. When left blank in this create request, this field will be left blank in QuickBooks (i.e., it does *not* auto-increment). Maximum length: 11 characters. example: EST-1234 type: string maxLength: 11 billingAddress: description: The estimate's billing address. type: object properties: line1: description: >- The first line of the address (e.g., street, PO Box, or company name). Maximum length: 41 characters. example: Conductor Labs Inc. type: string maxLength: 41 line2: description: >- The second line of the address, if needed (e.g., apartment, suite, unit, or building). Maximum length: 41 characters. example: 540 Market St. type: string maxLength: 41 line3: description: |- The third line of the address, if needed. Maximum length: 41 characters. example: Suite 100 type: string maxLength: 41 line4: description: |- The fourth line of the address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 line5: description: |- The fifth line of the address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 city: description: >- The city, district, suburb, town, or village name of the address. Maximum length: 31 characters. example: San Francisco type: string maxLength: 31 state: description: >- The state, county, province, or region name of the address. Maximum length: 21 characters. example: CA type: string maxLength: 21 postalCode: description: |- The postal code or ZIP code of the address. Maximum length: 13 characters. example: '94110' type: string maxLength: 13 country: description: The country name of the address. example: United States type: string note: description: >- A note written at the bottom of the address in the form in which it appears, such as the invoice form. example: Conductor HQ type: string additionalProperties: false shippingAddress: description: The estimate's shipping address. type: object properties: line1: description: >- The first line of the address (e.g., street, PO Box, or company name). Maximum length: 41 characters. example: Conductor Labs Inc. type: string maxLength: 41 line2: description: >- The second line of the address, if needed (e.g., apartment, suite, unit, or building). Maximum length: 41 characters. example: 540 Market St. type: string maxLength: 41 line3: description: |- The third line of the address, if needed. Maximum length: 41 characters. example: Suite 100 type: string maxLength: 41 line4: description: |- The fourth line of the address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 line5: description: |- The fifth line of the address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 city: description: >- The city, district, suburb, town, or village name of the address. Maximum length: 31 characters. example: San Francisco type: string maxLength: 31 state: description: >- The state, county, province, or region name of the address. Maximum length: 21 characters. example: CA type: string maxLength: 21 postalCode: description: |- The postal code or ZIP code of the address. Maximum length: 13 characters. example: '94110' type: string maxLength: 13 country: description: The country name of the address. example: United States type: string note: description: >- A note written at the bottom of the address in the form in which it appears, such as the invoice form. example: Conductor HQ type: string additionalProperties: false isActive: description: >- Indicates whether this estimate is active. Inactive objects are typically hidden from views and reports in QuickBooks. Defaults to `true`. example: true default: true type: boolean purchaseOrderNumber: description: >- The customer's Purchase Order (PO) number associated with this estimate. This field is often used to cross-reference the estimate with the customer's purchasing system. Maximum length: 25 characters. example: PO-1234 type: string maxLength: 25 termsId: description: >- The estimate's payment terms, defining when payment is due and any applicable discounts. example: 80000001-1234567890 type: string maxLength: 36 dueDate: description: >- The date by which this estimate must be paid, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-31' type: string format: date salesRepresentativeId: description: >- The estimate's sales representative. Sales representatives can be employees, vendors, or other names in QuickBooks. example: 80000001-1234567890 type: string maxLength: 36 shipmentOrigin: description: >- The origin location from where the product associated with this estimate 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. example: San Francisco, CA type: string maxLength: 13 salesTaxItemId: description: >- The sales-tax item used to calculate the actual tax amount for this estimate's transactions by applying a specific tax rate collected for a single tax agency. Unlike `salesTaxCode`, which only indicates general taxability, this field drives the actual tax calculation and reporting. example: 80000001-1234567890 type: string maxLength: 36 memo: description: >- A memo or note for this estimate that appears in reports, but not on the estimate. Use `customerMessage` to add a note to this estimate. example: Proposal for website redesign type: string customerMessageId: description: The message to display to the customer on the estimate. example: 80000001-1234567890 type: string maxLength: 36 isQueuedForEmail: description: >- Indicates whether this estimate is included in the queue of documents for QuickBooks to email to the customer. example: true type: boolean salesTaxCodeId: description: >- The sales-tax code for this estimate, determining whether it is taxable or non-taxable. This can be overridden at the transaction-line level. 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. example: 80000001-1234567890 type: string maxLength: 36 otherCustomField: description: >- A built-in custom field for additional information specific to this estimate. Unlike the user-defined fields in the `customFields` array, this is a standard QuickBooks field that exists for all estimates for convenience. Developers often use this field for tracking information that doesn't fit into other standard QuickBooks fields. Unlike `otherCustomField1` and `otherCustomField2`, which are line item fields, this exists at the transaction level. Hidden by default in the QuickBooks UI. example: Special handling required type: string exchangeRate: description: >- The market exchange rate between this estimate'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: 1.2345 type: number externalId: type: string format: uuid description: >- 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. **IMPORTANT**: This field must be formatted as a valid GUID; otherwise, QuickBooks will return an error. example: 12345678-abcd-1234-abcd-1234567890ab lines: description: >- The estimate's line items, each representing a single product or service quoted. **IMPORTANT**: You must specify `lines`, `lineGroups`, or both when creating an estimate. minItems: 1 type: array items: type: object properties: itemId: description: >- The item associated with this estimate 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. example: 80000001-1234567890 type: string maxLength: 36 description: description: A description of this estimate line. example: Graphic illustrations for website redesign type: string quantity: description: >- The quantity of the item associated with this estimate line. This field cannot be cleared. **NOTE**: Do not use this field if the associated item is a discount item. example: 5 type: number unitOfMeasure: description: >- The unit-of-measure used for the `quantity` in this estimate line. Must be a valid unit within the item's available units of measure. example: Each type: string rate: description: >- The price per unit for this estimate 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. Decimal string format: up to 5 decimal places and up to 10 digits before the decimal point (for example, "123.45"). example: '10.00' type: string ratePercent: description: >- The price of this estimate line expressed as a percentage. Typically used for discount or markup items. example: '10.5' type: string classId: description: >- The estimate 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 estimate lines unless overridden here, at the transaction line level. example: 80000001-1234567890 type: string maxLength: 36 amount: description: >- The monetary amount of this estimate line, represented as a decimal string. If both `quantity` and `rate` are specified but not `amount`, QuickBooks will calculate `amount` using the rate and any markup you supply. The calculation is `amount = (quantity * rate) * (1 + markupRate)` when `markupRate` is provided, or `amount = (quantity * rate) * (1 + markupRatePercent/100)` when `markupRatePercent` is provided. If `amount`, `rate`, and `quantity` are all unspecified, QuickBooks will calculate `amount` based on a `quantity` of `1` and the suggested `rate`. This field cannot be cleared. Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45"). example: '1000.00' type: string priceRuleConflictStrategy: description: >- Specifies how to resolve price rule conflicts when adding or modifying this estimate line. example: base_price type: string enum: - base_price - zero inventorySiteId: description: >- The site location where inventory for the item associated with this estimate line is stored. example: 80000001-1234567890 type: string maxLength: 36 inventorySiteLocationId: description: >- The specific location (e.g., bin or shelf) within the inventory site where the item associated with this estimate line is stored. example: 80000001-1234567890 type: string maxLength: 36 salesTaxCodeId: description: >- The sales-tax code for this estimate 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. example: 80000001-1234567890 type: string maxLength: 36 markupRate: description: >- The markup that will be passed on to the customer for this item on this estimate line. `amount = (quantity * rate) * (1 + markupRate)` example: '0.2' type: string markupRatePercent: description: >- The markup, expressed as a percentage, that will be passed on to the customer for this item on this estimate line. `amount = (quantity * rate) * (1 + markupRatePercent/100)` example: '20.0' type: string priceLevelId: description: >- The price level applied to this estimate line. This overrides any price level set on the corresponding customer. The resulting estimate line will not show this price level, only the final `rate` calculated from it. example: 80000001-1234567890 type: string maxLength: 36 overrideItemAccountId: description: >- The account to use for this estimate line, overriding the default account associated with the item. example: 80000001-1234567890 type: string maxLength: 36 otherCustomField1: description: >- A built-in custom field for additional information specific to this estimate line. Unlike the user-defined fields in the `customFields` array, this is a standard QuickBooks field that exists for all estimate 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. example: Special handling required type: string otherCustomField2: description: >- A second built-in custom field for additional information specific to this estimate line. Unlike the user-defined fields in the `customFields` array, this is a standard QuickBooks field that exists for all estimate 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. example: Always ship with a spare type: string customFields: description: >- The custom fields for the estimate line object, added as user-defined data extensions, not included in the standard QuickBooks object. minItems: 1 type: array items: type: object properties: ownerId: type: string description: >- 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. example: '0' name: type: string description: >- 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. example: Customer Rating value: type: string description: >- The value of this custom field. The maximum length depends on the field's data type. example: Premium required: - ownerId - name - value additionalProperties: false additionalProperties: false lineGroups: description: >- The estimate's line item groups, each representing a predefined set of related items. **IMPORTANT**: You must specify `lines`, `lineGroups`, or both when creating an estimate. minItems: 1 type: array items: type: object properties: itemGroupId: description: >- The estimate line group's item group, representing a predefined set of items bundled because they are commonly purchased together or grouped for faster entry. example: 80000001-1234567890 type: string maxLength: 36 quantity: description: >- The quantity of the item group associated with this estimate line group. This field cannot be cleared. **NOTE**: Do not use this field if the associated item group is a discount item group. example: 5 type: number unitOfMeasure: description: >- The unit-of-measure used for the `quantity` in this estimate line group. Must be a valid unit within the item's available units of measure. example: Each type: string inventorySiteId: description: >- The site location where inventory for the item group associated with this estimate line group is stored. example: 80000001-1234567890 type: string maxLength: 36 inventorySiteLocationId: description: >- The specific location (e.g., bin or shelf) within the inventory site where the item group associated with this estimate line group is stored. example: 80000001-1234567890 type: string maxLength: 36 customFields: description: >- The custom fields for the estimate line group object, added as user-defined data extensions, not included in the standard QuickBooks object. minItems: 1 type: array items: type: object properties: ownerId: type: string description: >- 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. example: '0' name: type: string description: >- 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. example: Customer Rating value: type: string description: >- The value of this custom field. The maximum length depends on the field's data type. example: Premium required: - ownerId - name - value additionalProperties: false required: - itemGroupId additionalProperties: false required: - customerId - transactionDate additionalProperties: false responses: '200': description: Returns the newly created estimate. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_estimate' x-codeSamples: - lang: JavaScript source: |- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const estimate = await conductor.qbd.estimates.create({ customerId: '80000001-1234567890', transactionDate: '2024-10-01', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(estimate.id); - lang: Python source: |- import os from datetime import date from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) estimate = conductor.qbd.estimates.create( customer_id="80000001-1234567890", transaction_date=date.fromisoformat("2024-10-01"), conductor_end_user_id="end_usr_1234567abcdefg", ) print(estimate.id) /quickbooks-desktop/estimates/{id}: get: summary: Retrieve an estimate description: >- Retrieves an estimate by ID. **IMPORTANT:** If you need to fetch multiple specific estimates 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. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the estimate to retrieve. example: 123ABC-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the estimate to retrieve. responses: '200': description: Returns the specified estimate. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_estimate' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const estimate = await conductor.qbd.estimates.retrieve('123ABC-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(estimate.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) estimate = conductor.qbd.estimates.retrieve( id="123ABC-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(estimate.id) post: summary: Update an estimate description: >- Updates an existing estimate. **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. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the estimate to update. example: 123ABC-1234567890 required: true description: The QuickBooks-assigned unique identifier of the estimate to update. requestBody: required: true content: application/json: schema: type: object properties: revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of the estimate 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. example: '1721172183' customerId: description: The customer or customer-job associated with this estimate. example: 80000001-1234567890 type: string maxLength: 36 classId: description: >- The estimate'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 estimate's line items unless overridden at the line item level. example: 80000001-1234567890 type: string maxLength: 36 documentTemplateId: description: >- The predefined template in QuickBooks that determines the layout and formatting for this estimate when printed or displayed. example: 80000001-1234567890 type: string maxLength: 36 transactionDate: description: The date of this estimate, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-01' type: string format: date refNumber: description: >- The case-sensitive user-defined reference number for this estimate, 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. example: EST-1234 type: string maxLength: 11 billingAddress: description: The estimate's billing address. type: object properties: line1: description: >- The first line of the address (e.g., street, PO Box, or company name). Maximum length: 41 characters. example: Conductor Labs Inc. type: string maxLength: 41 line2: description: >- The second line of the address, if needed (e.g., apartment, suite, unit, or building). Maximum length: 41 characters. example: 540 Market St. type: string maxLength: 41 line3: description: |- The third line of the address, if needed. Maximum length: 41 characters. example: Suite 100 type: string maxLength: 41 line4: description: |- The fourth line of the address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 line5: description: |- The fifth line of the address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 city: description: >- The city, district, suburb, town, or village name of the address. Maximum length: 31 characters. example: San Francisco type: string maxLength: 31 state: description: >- The state, county, province, or region name of the address. Maximum length: 21 characters. example: CA type: string maxLength: 21 postalCode: description: |- The postal code or ZIP code of the address. Maximum length: 13 characters. example: '94110' type: string maxLength: 13 country: description: The country name of the address. example: United States type: string note: description: >- A note written at the bottom of the address in the form in which it appears, such as the invoice form. example: Conductor HQ type: string additionalProperties: false shippingAddress: description: The estimate's shipping address. type: object properties: line1: description: >- The first line of the address (e.g., street, PO Box, or company name). Maximum length: 41 characters. example: Conductor Labs Inc. type: string maxLength: 41 line2: description: >- The second line of the address, if needed (e.g., apartment, suite, unit, or building). Maximum length: 41 characters. example: 540 Market St. type: string maxLength: 41 line3: description: |- The third line of the address, if needed. Maximum length: 41 characters. example: Suite 100 type: string maxLength: 41 line4: description: |- The fourth line of the address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 line5: description: |- The fifth line of the address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 city: description: >- The city, district, suburb, town, or village name of the address. Maximum length: 31 characters. example: San Francisco type: string maxLength: 31 state: description: >- The state, county, province, or region name of the address. Maximum length: 21 characters. example: CA type: string maxLength: 21 postalCode: description: |- The postal code or ZIP code of the address. Maximum length: 13 characters. example: '94110' type: string maxLength: 13 country: description: The country name of the address. example: United States type: string note: description: >- A note written at the bottom of the address in the form in which it appears, such as the invoice form. example: Conductor HQ type: string additionalProperties: false isActive: description: >- Indicates whether this estimate is active. Inactive objects are typically hidden from views and reports in QuickBooks. Defaults to `true`. example: true type: boolean createChangeOrder: description: >- When `true`, creates a "change order" that appears in this estimate's description field in QuickBooks's estimate form, specifying exactly what changed in this update request, the dollar amount of each change, and the net dollar change to this estimate. example: false type: boolean purchaseOrderNumber: description: >- The customer's Purchase Order (PO) number associated with this estimate. This field is often used to cross-reference the estimate with the customer's purchasing system. Maximum length: 25 characters. example: PO-1234 type: string maxLength: 25 termsId: description: >- The estimate's payment terms, defining when payment is due and any applicable discounts. example: 80000001-1234567890 type: string maxLength: 36 dueDate: description: >- The date by which this estimate must be paid, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-31' type: string format: date salesRepresentativeId: description: >- The estimate's sales representative. Sales representatives can be employees, vendors, or other names in QuickBooks. example: 80000001-1234567890 type: string maxLength: 36 shipmentOrigin: description: >- The origin location from where the product associated with this estimate 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. example: San Francisco, CA type: string maxLength: 13 salesTaxItemId: description: >- The sales-tax item used to calculate the actual tax amount for this estimate's transactions by applying a specific tax rate collected for a single tax agency. Unlike `salesTaxCode`, which only indicates general taxability, this field drives the actual tax calculation and reporting. example: 80000001-1234567890 type: string maxLength: 36 memo: description: >- A memo or note for this estimate that appears in reports, but not on the estimate. Use `customerMessage` to add a note to this estimate. example: Proposal for website redesign type: string customerMessageId: description: The message to display to the customer on the estimate. example: 80000001-1234567890 type: string maxLength: 36 isQueuedForEmail: description: >- Indicates whether this estimate is included in the queue of documents for QuickBooks to email to the customer. example: true type: boolean salesTaxCodeId: description: >- The sales-tax code for this estimate, determining whether it is taxable or non-taxable. This can be overridden at the transaction-line level. 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. example: 80000001-1234567890 type: string maxLength: 36 otherCustomField: description: >- A built-in custom field for additional information specific to this estimate. Unlike the user-defined fields in the `customFields` array, this is a standard QuickBooks field that exists for all estimates for convenience. Developers often use this field for tracking information that doesn't fit into other standard QuickBooks fields. Unlike `otherCustomField1` and `otherCustomField2`, which are line item fields, this exists at the transaction level. Hidden by default in the QuickBooks UI. example: Special handling required type: string exchangeRate: description: >- The market exchange rate between this estimate'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: 1.2345 type: number lines: description: >- The estimate's line items, each representing a single product or service quoted. **IMPORTANT**: 1. Including this array in your update request will **REPLACE** all existing line items for the estimate with this array. To keep any existing line items, you must include them in this array even if they have not changed. **Any line items not included will be removed.** 2. To add a new line item, include it here with the `id` field set to `-1`. 3. If you do not wish to modify any line items, omit this field entirely to keep them unchanged. minItems: 1 type: array items: type: object properties: id: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of an existing estimate line you wish to retain or update. **IMPORTANT**: Set this field to `-1` for new estimate lines you wish to add. example: 456DEF-1234567890 itemId: description: >- The item associated with this estimate 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. example: 80000001-1234567890 type: string maxLength: 36 description: description: A description of this estimate line. example: Graphic illustrations for website redesign type: string quantity: description: >- The quantity of the item associated with this estimate line. This field cannot be cleared. **NOTE**: Do not use this field if the associated item is a discount item. example: 5 type: number unitOfMeasure: description: >- The unit-of-measure used for the `quantity` in this estimate line. Must be a valid unit within the item's available units of measure. example: Each type: string overrideUnitOfMeasureSetId: description: >- Specifies an alternative unit-of-measure set when updating this estimate 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. example: 80000001-1234567890 type: string maxLength: 36 rate: description: >- The price per unit for this estimate 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. Decimal string format: up to 5 decimal places and up to 10 digits before the decimal point (for example, "123.45"). example: '10.00' type: string ratePercent: description: >- The price of this estimate line expressed as a percentage. Typically used for discount or markup items. example: '10.5' type: string classId: description: >- The estimate 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 estimate lines unless overridden here, at the transaction line level. example: 80000001-1234567890 type: string maxLength: 36 amount: description: >- The monetary amount of this estimate line, represented as a decimal string. If both `quantity` and `rate` are specified but not `amount`, QuickBooks will calculate `amount` using the rate and any markup you supply. The calculation is `amount = (quantity * rate) * (1 + markupRate)` when `markupRate` is provided, or `amount = (quantity * rate) * (1 + markupRatePercent/100)` when `markupRatePercent` is provided. If `amount`, `rate`, and `quantity` are all unspecified, QuickBooks will calculate `amount` based on a `quantity` of `1` and the suggested `rate`. This field cannot be cleared. Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45"). example: '1000.00' type: string priceRuleConflictStrategy: description: >- Specifies how to resolve price rule conflicts when adding or modifying this estimate line. example: base_price type: string enum: - base_price - zero inventorySiteId: description: >- The site location where inventory for the item associated with this estimate line is stored. example: 80000001-1234567890 type: string maxLength: 36 inventorySiteLocationId: description: >- The specific location (e.g., bin or shelf) within the inventory site where the item associated with this estimate line is stored. example: 80000001-1234567890 type: string maxLength: 36 salesTaxCodeId: description: >- The sales-tax code for this estimate 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. example: 80000001-1234567890 type: string maxLength: 36 markupRate: description: >- The markup that will be passed on to the customer for this item on this estimate line. `amount = (quantity * rate) * (1 + markupRate)` example: '0.2' type: string markupRatePercent: description: >- The markup, expressed as a percentage, that will be passed on to the customer for this item on this estimate line. `amount = (quantity * rate) * (1 + markupRatePercent/100)` example: '20.0' type: string priceLevelId: description: >- The price level applied to this estimate line. This overrides any price level set on the corresponding customer. The resulting estimate line will not show this price level, only the final `rate` calculated from it. example: 80000001-1234567890 type: string maxLength: 36 otherCustomField1: description: >- A built-in custom field for additional information specific to this estimate line. Unlike the user-defined fields in the `customFields` array, this is a standard QuickBooks field that exists for all estimate 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. example: Special handling required type: string otherCustomField2: description: >- A second built-in custom field for additional information specific to this estimate line. Unlike the user-defined fields in the `customFields` array, this is a standard QuickBooks field that exists for all estimate 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. example: Always ship with a spare type: string required: - id additionalProperties: false lineGroups: description: >- The estimate's line item groups, each representing a predefined set of related items. **IMPORTANT**: 1. Including this array in your update request will **REPLACE** all existing line item groups for the estimate with this array. To keep any existing line item groups, you must include them in this array even if they have not changed. **Any line item groups not included will be removed.** 2. To add a new line item group, include it here with the `id` field set to `-1`. 3. If you do not wish to modify any line item groups, omit this field entirely to keep them unchanged. minItems: 1 type: array items: type: object properties: id: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of an existing estimate line group you wish to retain or update. **IMPORTANT**: Set this field to `-1` for new estimate line groups you wish to add. example: 456DEF-1234567890 itemGroupId: description: >- The estimate line group's item group, representing a predefined set of items bundled because they are commonly purchased together or grouped for faster entry. example: 80000001-1234567890 type: string maxLength: 36 quantity: description: >- The quantity of the item group associated with this estimate line group. This field cannot be cleared. **NOTE**: Do not use this field if the associated item group is a discount item group. example: 5 type: number unitOfMeasure: description: >- The unit-of-measure used for the `quantity` in this estimate line group. Must be a valid unit within the item's available units of measure. example: Each type: string overrideUnitOfMeasureSetId: description: >- Specifies an alternative unit-of-measure set when updating this estimate 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. example: 80000001-1234567890 type: string maxLength: 36 lines: description: >- The estimate line group's line items, each representing a single product or service quoted. **IMPORTANT**: 1. Including this array in your update request will **REPLACE** all existing line items for the estimate line group with this array. To keep any existing line items, you must include them in this array even if they have not changed. **Any line items not included will be removed.** 2. To add a new line item, include it here with the `id` field set to `-1`. 3. If you do not wish to modify any line items, omit this field entirely to keep them unchanged. minItems: 1 type: array items: type: object properties: id: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of an existing estimate line you wish to retain or update. **IMPORTANT**: Set this field to `-1` for new estimate lines you wish to add. example: 456DEF-1234567890 itemId: description: >- The item associated with this estimate 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. example: 80000001-1234567890 type: string maxLength: 36 description: description: A description of this estimate line. example: Graphic illustrations for website redesign type: string quantity: description: >- The quantity of the item associated with this estimate line. This field cannot be cleared. **NOTE**: Do not use this field if the associated item is a discount item. example: 5 type: number unitOfMeasure: description: >- The unit-of-measure used for the `quantity` in this estimate line. Must be a valid unit within the item's available units of measure. example: Each type: string overrideUnitOfMeasureSetId: description: >- Specifies an alternative unit-of-measure set when updating this estimate 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. example: 80000001-1234567890 type: string maxLength: 36 rate: description: >- The price per unit for this estimate 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. Decimal string format: up to 5 decimal places and up to 10 digits before the decimal point (for example, "123.45"). example: '10.00' type: string ratePercent: description: >- The price of this estimate line expressed as a percentage. Typically used for discount or markup items. example: '10.5' type: string classId: description: >- The estimate 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 estimate lines unless overridden here, at the transaction line level. example: 80000001-1234567890 type: string maxLength: 36 amount: description: >- The monetary amount of this estimate line, represented as a decimal string. If both `quantity` and `rate` are specified but not `amount`, QuickBooks will calculate `amount` using the rate and any markup you supply. The calculation is `amount = (quantity * rate) * (1 + markupRate)` when `markupRate` is provided, or `amount = (quantity * rate) * (1 + markupRatePercent/100)` when `markupRatePercent` is provided. If `amount`, `rate`, and `quantity` are all unspecified, QuickBooks will calculate `amount` based on a `quantity` of `1` and the suggested `rate`. This field cannot be cleared. Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45"). example: '1000.00' type: string priceRuleConflictStrategy: description: >- Specifies how to resolve price rule conflicts when adding or modifying this estimate line. example: base_price type: string enum: - base_price - zero inventorySiteId: description: >- The site location where inventory for the item associated with this estimate line is stored. example: 80000001-1234567890 type: string maxLength: 36 inventorySiteLocationId: description: >- The specific location (e.g., bin or shelf) within the inventory site where the item associated with this estimate line is stored. example: 80000001-1234567890 type: string maxLength: 36 salesTaxCodeId: description: >- The sales-tax code for this estimate 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. example: 80000001-1234567890 type: string maxLength: 36 markupRate: description: >- The markup that will be passed on to the customer for this item on this estimate line. `amount = (quantity * rate) * (1 + markupRate)` example: '0.2' type: string markupRatePercent: description: >- The markup, expressed as a percentage, that will be passed on to the customer for this item on this estimate line. `amount = (quantity * rate) * (1 + markupRatePercent/100)` example: '20.0' type: string priceLevelId: description: >- The price level applied to this estimate line. This overrides any price level set on the corresponding customer. The resulting estimate line will not show this price level, only the final `rate` calculated from it. example: 80000001-1234567890 type: string maxLength: 36 otherCustomField1: description: >- A built-in custom field for additional information specific to this estimate line. Unlike the user-defined fields in the `customFields` array, this is a standard QuickBooks field that exists for all estimate 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. example: Special handling required type: string otherCustomField2: description: >- A second built-in custom field for additional information specific to this estimate line. Unlike the user-defined fields in the `customFields` array, this is a standard QuickBooks field that exists for all estimate 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. example: Always ship with a spare type: string required: - id additionalProperties: false required: - id additionalProperties: false required: - revisionNumber additionalProperties: false responses: '200': description: Returns the updated estimate. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_estimate' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const estimate = await conductor.qbd.estimates.update('123ABC-1234567890', { revisionNumber: '1721172183', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(estimate.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) estimate = conductor.qbd.estimates.update( id="123ABC-1234567890", revision_number="1721172183", conductor_end_user_id="end_usr_1234567abcdefg", ) print(estimate.id) delete: summary: Delete an estimate description: >- Permanently deletes an estimate. The deletion will fail if the estimate is currently in use or has any linked transactions that are in use. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the estimate to delete. example: 123ABC-1234567890 required: true description: The QuickBooks-assigned unique identifier of the estimate to delete. responses: '200': description: >- Returns a confirmation of the deletion with the ID of the deleted estimate. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: id: type: string description: >- The QuickBooks-assigned unique identifier of the deleted estimate. example: 123ABC-1234567890 objectType: description: The type of object. This value is always `"qbd_estimate"`. example: qbd_estimate type: string const: qbd_estimate refNumber: anyOf: - type: string - type: 'null' description: >- The case-sensitive user-defined reference number of the deleted estimate. example: EST-1234 deleted: type: boolean description: Indicates whether the estimate was deleted. example: true required: - id - objectType - refNumber - deleted additionalProperties: false x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const estimate = await conductor.qbd.estimates.delete('123ABC-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(estimate.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) estimate = conductor.qbd.estimates.delete( id="123ABC-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(estimate.id) /quickbooks-desktop/inventory-adjustments: get: summary: List all inventory adjustments description: >- Returns a list of inventory adjustments. **NOTE:** QuickBooks Desktop does not support pagination for inventory adjustments; hence, there is no `cursor` parameter. Users typically have few inventory adjustments. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: query name: ids schema: description: >- Filter for specific inventory adjustments 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 type: array items: type: string description: >- Filter for specific inventory adjustments 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. - in: query name: refNumbers schema: description: >- Filter for specific inventory adjustments 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: - INVENTORY ADJUSTMENT-1234 type: array items: type: string description: >- Filter for specific inventory adjustments 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. - in: query name: limit schema: description: >- The maximum number of objects to return. **IMPORTANT**: QuickBooks Desktop does not support cursor-based pagination for inventory adjustments. 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 inventory adjustments without limit, unlike paginated endpoints which default to 150 records. This is acceptable because inventory adjustments typically have low record counts. example: 10 type: integer minimum: 1 description: >- The maximum number of objects to return. **IMPORTANT**: QuickBooks Desktop does not support cursor-based pagination for inventory adjustments. 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 inventory adjustments without limit, unlike paginated endpoints which default to 150 records. This is acceptable because inventory adjustments typically have low record counts. - in: query name: updatedAfter schema: description: >- Filter for inventory adjustments 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. example: 2025-01-01T12:34:56.000Z type: string description: >- Filter for inventory adjustments 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. - in: query name: updatedBefore schema: description: >- Filter for inventory adjustments 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. example: 2025-02-01T12:34:56.000Z type: string description: >- Filter for inventory adjustments 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. - in: query name: transactionDateFrom schema: description: >- Filter for inventory adjustments 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-01` → `2025-01-01T00:00:00`). example: '2025-01-01' type: string format: date description: >- Filter for inventory adjustments 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-01` → `2025-01-01T00:00:00`). - in: query name: transactionDateTo schema: description: >- Filter for inventory adjustments 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-01` → `2025-01-01T23:59:59`). example: '2025-02-01' type: string format: date description: >- Filter for inventory adjustments 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-01` → `2025-01-01T23:59:59`). - in: query name: customerIds schema: description: Filter for inventory adjustments associated with these customers. example: - 80000001-1234567890 type: array items: type: string description: Filter for inventory adjustments associated with these customers. - in: query name: accountIds schema: description: Filter for inventory adjustments associated with these accounts. example: - 80000001-1234567890 type: array items: type: string description: Filter for inventory adjustments associated with these accounts. - in: query name: itemIds schema: description: Filter for inventory adjustments containing these inventory items. example: - 80000001-1234567890 type: array items: type: string description: Filter for inventory adjustments containing these inventory items. - in: query name: refNumberContains schema: description: >- Filter for inventory adjustments whose `refNumber` contains this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberStartsWith` or `refNumberEndsWith`. example: INVADJ-1234 type: string description: >- Filter for inventory adjustments whose `refNumber` contains this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberStartsWith` or `refNumberEndsWith`. - in: query name: refNumberStartsWith schema: description: >- Filter for inventory adjustments whose `refNumber` starts with this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberContains` or `refNumberEndsWith`. example: INVADJ type: string description: >- Filter for inventory adjustments whose `refNumber` starts with this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberContains` or `refNumberEndsWith`. - in: query name: refNumberEndsWith schema: description: >- Filter for inventory adjustments whose `refNumber` ends with this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberContains` or `refNumberStartsWith`. example: '1234' type: string description: >- Filter for inventory adjustments whose `refNumber` ends with this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberContains` or `refNumberStartsWith`. - in: query name: refNumberFrom schema: description: >- Filter for inventory adjustments 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: INVADJ-0001 type: string description: >- Filter for inventory adjustments 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. - in: query name: refNumberTo schema: description: >- Filter for inventory adjustments 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: INVADJ-9999 type: string description: >- Filter for inventory adjustments 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. - in: query name: includeLineItems schema: description: Whether to include line items in the response. Defaults to `true`. example: true type: boolean default: true description: Whether to include line items in the response. Defaults to `true`. responses: '200': description: Returns a list of inventory adjustments. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: objectType: description: The type of object. This value is always `"list"`. example: list type: string const: list url: type: string description: The endpoint URL where this list can be accessed. example: /v1/quickbooks-desktop/inventory-adjustments data: type: array items: $ref: '#/components/schemas/qbd_inventory_adjustment' description: The array of inventory adjustments. required: - objectType - url - data additionalProperties: false x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const inventoryAdjustments = await conductor.qbd.inventoryAdjustments.list({ conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(inventoryAdjustments.data); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) inventory_adjustments = conductor.qbd.inventory_adjustments.list( conductor_end_user_id="end_usr_1234567abcdefg", ) print(inventory_adjustments.data) post: summary: Create an inventory adjustment description: >- Creates an inventory adjustment to correct on-hand quantities or values. QuickBooks requires single-user mode unless you're on Enterprise with Advanced Inventory enabled. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. requestBody: required: true content: application/json: schema: type: object properties: accountId: description: >- The account to which this inventory adjustment is posted for tracking inventory value changes. example: 80000001-1234567890 type: string maxLength: 36 transactionDate: type: string format: date description: >- The date of this inventory adjustment, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-01' refNumber: description: >- The case-sensitive user-defined reference number for this inventory adjustment, 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. When left blank in this create request, this field will be left blank in QuickBooks (i.e., it does *not* auto-increment). Maximum length: 11 characters. example: INVADJ-1234 type: string maxLength: 11 inventorySiteId: description: >- The site location where inventory for the item associated with this inventory adjustment is stored. example: 80000001-1234567890 type: string maxLength: 36 customerId: description: >- The customer or customer-job associated with this inventory adjustment. example: 80000001-1234567890 type: string maxLength: 36 classId: description: >- The inventory adjustment'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 inventory adjustment's line items unless overridden at the line item level. example: 80000001-1234567890 type: string maxLength: 36 memo: description: A memo or note for this inventory adjustment. example: Adjusted quantity due to physical count discrepancy type: string externalId: type: string format: uuid description: >- 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. **IMPORTANT**: This field must be formatted as a valid GUID; otherwise, QuickBooks will return an error. example: 12345678-abcd-1234-abcd-1234567890ab lines: description: >- The inventory adjustment's item lines, each representing the adjustment of an inventory item's quantity, value, serial number, or lot number. minItems: 1 type: array items: type: object properties: itemId: description: >- The inventory item associated with this inventory adjustment line. example: 80000001-1234567890 type: string maxLength: 36 adjustQuantity: description: >- Adjusts the inventory quantity of this inventory item either by setting a new quantity or by adjusting the current quantity up or down. type: object properties: newQuantity: description: >- The new quantity for the inventory item associated with this inventory adjustment line. example: 10 type: number quantityDifference: description: >- Either a positive or negative number that shows the change in quantity for the inventory item associated with this inventory adjustment line. A positive number increases the quantity, while a negative number decreases it. example: 5 type: number serialNumber: description: >- The serial number of the item associated with this inventory adjustment line. This is used for tracking individual units of serialized inventory items. example: SN1234567890 type: string lotNumber: description: >- The lot number of the item associated with this inventory adjustment line. Used for tracking groups of inventory items that are purchased or manufactured together. example: LOT2023-001 type: string expirationDate: description: >- The expiration date for the serial number or lot number of the item associated with this inventory adjustment line, in ISO 8601 format (YYYY-MM-DD). This is particularly relevant for perishable or time-sensitive inventory items. Note that this field is only supported on QuickBooks Desktop 2023 or later. example: '2025-12-31' type: string format: date inventorySiteLocationId: description: >- The specific location (e.g., bin or shelf) within the inventory site where the item associated with this inventory adjustment line is stored. example: 80000001-1234567890 type: string maxLength: 36 additionalProperties: false adjustValue: description: >- Adjusts the total value of the entire stock of this inventory item by setting a new monetary value, and optionally by setting a new quantity. type: object properties: newQuantity: description: >- The new quantity for the inventory item associated with this inventory adjustment line. example: 10 type: number quantityDifference: description: >- Either a positive or negative number that shows the change in quantity for the inventory item associated with this inventory adjustment line. A positive number increases the quantity, while a negative number decreases it. example: 5 type: number newValue: description: >- The new total value of the entire stock of the inventory item associated with this inventory adjustment line. **NOTE**: The new value does _not_ have to equal `quantityOnHand` times `purchaseCost`. example: '100.00' type: string valueDifference: description: >- Either a positive or negative number that shows the change in the total value of the entire stock of the inventory item associated with this inventory adjustment line. A positive number increases the value, while a negative number decreases it. example: 7 type: number additionalProperties: false adjustSerialNumber: description: >- Adjusts the serial number of this inventory adjustment line. This is used for tracking individual units of serialized inventory items. type: object properties: addSerialNumber: description: >- The serial number, which represents a unique unit of the inventory item associated with this inventory adjustment line, to add to inventory. example: '123456' type: string removeSerialNumber: description: >- The serial number, which represents a unique unit of the inventory item associated with this inventory adjustment line, to remove from inventory. example: '123456' type: string expirationDate: description: >- The expiration date for the serial number or lot number of the item associated with this inventory adjustment line, in ISO 8601 format (YYYY-MM-DD). This is particularly relevant for perishable or time-sensitive inventory items. Note that this field is only supported on QuickBooks Desktop 2023 or later. example: '2025-12-31' type: string format: date inventorySiteLocationId: description: >- The specific location (e.g., bin or shelf) within the inventory site where the item associated with this inventory adjustment line is stored. example: 80000001-1234567890 type: string maxLength: 36 additionalProperties: false adjustLotNumber: description: >- Adjusts the lot number of this inventory adjustment line. type: object properties: lotNumber: description: >- The lot number of the item associated with this inventory adjustment line. Used for tracking groups of inventory items that are purchased or manufactured together. example: LOT2023-001 type: string adjustCount: description: >- The amount to adjust the count of the inventory item associated with this inventory adjustment line. example: 2 type: number expirationDate: description: >- The expiration date for the serial number or lot number of the item associated with this inventory adjustment line, in ISO 8601 format (YYYY-MM-DD). This is particularly relevant for perishable or time-sensitive inventory items. Note that this field is only supported on QuickBooks Desktop 2023 or later. example: '2025-12-31' type: string format: date inventorySiteLocationId: description: >- The specific location (e.g., bin or shelf) within the inventory site where the item associated with this inventory adjustment line is stored. example: 80000001-1234567890 type: string maxLength: 36 additionalProperties: false required: - itemId additionalProperties: false required: - accountId - transactionDate additionalProperties: false responses: '200': description: Returns the newly created inventory adjustment. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_inventory_adjustment' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const inventoryAdjustment = await conductor.qbd.inventoryAdjustments.create({ accountId: '80000001-1234567890', transactionDate: '2024-10-01', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(inventoryAdjustment.id); - lang: Python source: |- import os from datetime import date from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) inventory_adjustment = conductor.qbd.inventory_adjustments.create( account_id="80000001-1234567890", transaction_date=date.fromisoformat("2024-10-01"), conductor_end_user_id="end_usr_1234567abcdefg", ) print(inventory_adjustment.id) /quickbooks-desktop/inventory-adjustments/{id}: get: summary: Retrieve an inventory adjustment description: >- Retrieves an inventory adjustment by ID. **IMPORTANT:** If you need to fetch multiple specific inventory adjustments 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. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the inventory adjustment to retrieve. example: 123ABC-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the inventory adjustment to retrieve. responses: '200': description: Returns the specified inventory adjustment. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_inventory_adjustment' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const inventoryAdjustment = await conductor.qbd.inventoryAdjustments.retrieve('123ABC-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(inventoryAdjustment.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) inventory_adjustment = conductor.qbd.inventory_adjustments.retrieve( id="123ABC-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(inventory_adjustment.id) post: summary: Update an inventory adjustment description: >- Updates an existing inventory adjustment. **NOTE:** If you include `lines`, QuickBooks Desktop replaces that line list with the array you send, so include unchanged lines you want to keep and use `id: "-1"` for new lines. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the inventory adjustment to update. example: 123ABC-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the inventory adjustment to update. requestBody: required: true content: application/json: schema: type: object properties: revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of the inventory adjustment 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. example: '1721172183' accountId: description: >- The account to which this inventory adjustment is posted for tracking inventory value changes. example: 80000001-1234567890 type: string maxLength: 36 inventorySiteId: description: >- The site location where inventory for the item associated with this inventory adjustment is stored. example: 80000001-1234567890 type: string maxLength: 36 transactionDate: description: >- The date of this inventory adjustment, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-01' type: string format: date refNumber: description: >- The case-sensitive user-defined reference number for this inventory adjustment, 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. example: INVADJ-1234 type: string maxLength: 11 customerId: description: >- The customer or customer-job associated with this inventory adjustment. example: 80000001-1234567890 type: string maxLength: 36 classId: description: >- The inventory adjustment'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 inventory adjustment's line items unless overridden at the line item level. example: 80000001-1234567890 type: string maxLength: 36 memo: description: A memo or note for this inventory adjustment. example: Adjusted quantity due to physical count discrepancy type: string lines: description: >- The inventory adjustment's item lines, each representing the adjustment of an inventory item's quantity, value, serial number, or lot number. **IMPORTANT**: 1. Including this array in your update request will **REPLACE** all existing item lines for the inventory adjustment with this array. To keep any existing item lines, you must include them in this array even if they have not changed. **Any item lines not included will be removed.** 2. To add a new item line, include it here with the `id` field set to `-1`. 3. If you do not wish to modify any item lines, omit this field entirely to keep them unchanged. minItems: 1 type: array items: type: object properties: id: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of an existing inventory adjustment line you wish to retain or update. **IMPORTANT**: Set this field to `-1` for new inventory adjustment lines you wish to add. example: 456DEF-1234567890 itemId: description: >- The inventory item associated with this inventory adjustment line. example: 80000001-1234567890 type: string maxLength: 36 serialNumber: description: >- The serial number of the item associated with this inventory adjustment line. This is used for tracking individual units of serialized inventory items. example: SN1234567890 type: string lotNumber: description: >- The lot number of the item associated with this inventory adjustment line. Used for tracking groups of inventory items that are purchased or manufactured together. example: LOT2023-001 type: string adjustCount: description: >- The amount to adjust the count of the inventory item associated with this inventory adjustment line. example: 2 type: number expirationDate: description: >- The expiration date for the serial number or lot number of the item associated with this inventory adjustment line, in ISO 8601 format (YYYY-MM-DD). This is particularly relevant for perishable or time-sensitive inventory items. Note that this field is only supported on QuickBooks Desktop 2023 or later. example: '2025-12-31' type: string format: date inventorySiteLocationId: description: >- The specific location (e.g., bin or shelf) within the inventory site where the item associated with this inventory adjustment line is stored. example: 80000001-1234567890 type: string maxLength: 36 quantityDifference: description: >- Either a positive or negative number that shows the change in quantity for the inventory item associated with this inventory adjustment line. A positive number increases the quantity, while a negative number decreases it. example: 5 type: number valueDifference: description: >- Either a positive or negative number that shows the change in the total value of the entire stock of the inventory item associated with this inventory adjustment line. A positive number increases the value, while a negative number decreases it. example: 7 type: number required: - id additionalProperties: false required: - revisionNumber additionalProperties: false responses: '200': description: Returns the updated inventory adjustment. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_inventory_adjustment' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const inventoryAdjustment = await conductor.qbd.inventoryAdjustments.update('123ABC-1234567890', { revisionNumber: '1721172183', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(inventoryAdjustment.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) inventory_adjustment = conductor.qbd.inventory_adjustments.update( id="123ABC-1234567890", revision_number="1721172183", conductor_end_user_id="end_usr_1234567abcdefg", ) print(inventory_adjustment.id) delete: summary: Delete an inventory adjustment description: >- Permanently deletes an inventory adjustment. The deletion will fail if the inventory adjustment is currently in use or has any linked transactions that are in use. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the inventory adjustment to delete. example: 123ABC-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the inventory adjustment to delete. responses: '200': description: >- Returns a confirmation of the deletion with the ID of the deleted inventory adjustment. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: id: type: string description: >- The QuickBooks-assigned unique identifier of the deleted inventory adjustment. example: 123ABC-1234567890 objectType: description: >- The type of object. This value is always `"qbd_inventory_adjustment"`. example: qbd_inventory_adjustment type: string const: qbd_inventory_adjustment refNumber: anyOf: - type: string - type: 'null' description: >- The case-sensitive user-defined reference number of the deleted inventory adjustment. example: INVADJ-1234 deleted: type: boolean description: Indicates whether the inventory adjustment was deleted. example: true required: - id - objectType - refNumber - deleted additionalProperties: false x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const inventoryAdjustment = await conductor.qbd.inventoryAdjustments.delete('123ABC-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(inventoryAdjustment.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) inventory_adjustment = conductor.qbd.inventory_adjustments.delete( id="123ABC-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(inventory_adjustment.id) /quickbooks-desktop/inventory-adjustments/{id}/void: post: summary: Void an inventory adjustment description: >- Voids an inventory adjustment by setting its amount to zero while keeping a record of it in QuickBooks. The void will fail if the inventory adjustment is currently in use or has any linked transactions that are in use. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the inventory adjustment to void. example: 123ABC-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the inventory adjustment to void. responses: '200': description: >- Returns a confirmation of the void with the ID of the voided inventory adjustment. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: id: type: string description: >- The QuickBooks-assigned unique identifier of the voided inventory adjustment. example: 123ABC-1234567890 objectType: description: >- The type of object. This value is always `"qbd_inventory_adjustment"`. example: qbd_inventory_adjustment type: string const: qbd_inventory_adjustment createdAt: anyOf: - type: string - type: 'null' description: >- The date and time when this inventory adjustment 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. example: 2025-01-01T12:34:56.000Z updatedAt: anyOf: - type: string - type: 'null' description: >- The date and time when this inventory adjustment 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. example: 2025-02-01T12:34:56.000Z refNumber: anyOf: - type: string - type: 'null' description: >- The case-sensitive user-defined reference number of the voided inventory adjustment. example: INVADJ-1234 voided: type: boolean description: Indicates whether the inventory adjustment was voided. example: true required: - id - objectType - createdAt - updatedAt - refNumber - voided additionalProperties: false x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const response = await conductor.qbd.inventoryAdjustments.void('123ABC-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(response.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) response = conductor.qbd.inventory_adjustments.void( id="123ABC-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(response.id) /quickbooks-desktop/inventory-assembly-items: get: summary: List all inventory assembly items description: >- Returns a list of inventory assembly items. Use the `cursor` parameter to paginate through the results. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: query name: ids schema: description: >- Filter for specific inventory assembly items 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: - 80000001-1234567890 type: array items: type: string description: >- Filter for specific inventory assembly items 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. - in: query name: fullNames schema: description: >- Filter for specific inventory assembly items by their full-name(s), case-insensitive. Like `id`, `fullName` is a unique identifier for an inventory assembly item, formed by by combining the names of its parent objects with its own `name`, separated by colons. For example, if an inventory assembly item is under "Assemblies" and has the `name` "Deluxe Kit", its `fullName` would be "Assemblies:Deluxe Kit". **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: - Assemblies:Deluxe Kit type: array items: type: string description: >- Filter for specific inventory assembly items by their full-name(s), case-insensitive. Like `id`, `fullName` is a unique identifier for an inventory assembly item, formed by by combining the names of its parent objects with its own `name`, separated by colons. For example, if an inventory assembly item is under "Assemblies" and has the `name` "Deluxe Kit", its `fullName` would be "Assemblies:Deluxe Kit". **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. - in: query name: limit schema: default: 150 description: >- 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. example: 150 type: integer minimum: 1 maximum: 150 description: >- 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. - in: query name: cursor schema: description: >- 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 type: string description: >- 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. - in: query name: status schema: description: >- Filter for inventory assembly items that are active, inactive, or both. example: active type: string enum: - active - all - inactive default: active description: >- Filter for inventory assembly items that are active, inactive, or both. - in: query name: updatedAfter schema: description: >- Filter for inventory assembly items 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. example: 2025-01-01T12:34:56.000Z type: string description: >- Filter for inventory assembly items 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. - in: query name: updatedBefore schema: description: >- Filter for inventory assembly items 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. example: 2025-02-01T12:34:56.000Z type: string description: >- Filter for inventory assembly items 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. - in: query name: nameContains schema: description: >- Filter for inventory assembly items whose `name` contains this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameStartsWith` or `nameEndsWith`. example: ABC type: string description: >- Filter for inventory assembly items whose `name` contains this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameStartsWith` or `nameEndsWith`. - in: query name: nameStartsWith schema: description: >- Filter for inventory assembly items whose `name` starts with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameEndsWith`. example: ABC type: string description: >- Filter for inventory assembly items whose `name` starts with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameEndsWith`. - in: query name: nameEndsWith schema: description: >- Filter for inventory assembly items whose `name` ends with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameStartsWith`. example: ABC type: string description: >- Filter for inventory assembly items whose `name` ends with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameStartsWith`. - in: query name: nameFrom schema: description: >- Filter for inventory assembly items whose `name` is alphabetically greater than or equal to this value. example: A type: string description: >- Filter for inventory assembly items whose `name` is alphabetically greater than or equal to this value. - in: query name: nameTo schema: description: >- Filter for inventory assembly items whose `name` is alphabetically less than or equal to this value. example: Z type: string description: >- Filter for inventory assembly items whose `name` is alphabetically less than or equal to this value. - in: query name: classIds schema: description: >- Filter for inventory assembly items of these classes. A class is a way end-users can categorize inventory assembly items in QuickBooks. example: - 80000001-1234567890 type: array items: type: string description: >- Filter for inventory assembly items of these classes. A class is a way end-users can categorize inventory assembly items in QuickBooks. responses: '200': description: Returns a list of inventory assembly items. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: objectType: description: The type of object. This value is always `"list"`. example: list type: string const: list url: type: string description: The endpoint URL where this list can be accessed. example: /v1/quickbooks-desktop/inventory-assembly-items data: type: array items: $ref: '#/components/schemas/qbd_inventory_assembly_item' description: The array of inventory assembly items. nextCursor: anyOf: - type: string - type: 'null' description: >- The `nextCursor` is a pagination token returned in the response when you use the `limit` parameter in your request. To retrieve subsequent pages of results, include this token as the value of the `cursor` request parameter in your following API calls. **NOTE**: The `nextCursor` value remains constant throughout the pagination process for a specific list instance; continue to use the same `nextCursor` token in each request to fetch additional pages. example: 12345678-abcd-abcd-example-1234567890ab remainingCount: anyOf: - type: number - type: 'null' description: The number of objects remaining to be fetched. example: 10 hasMore: type: boolean description: Indicates whether there are more objects to be fetched. required: - objectType - url - data - nextCursor - remainingCount - hasMore additionalProperties: false x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); // Automatically fetches more pages as needed. for await (const inventoryAssemblyItem of conductor.qbd.inventoryAssemblyItems.list({ conductorEndUserId: 'end_usr_1234567abcdefg', })) { console.log(inventoryAssemblyItem.id); } - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) page = conductor.qbd.inventory_assembly_items.list( conductor_end_user_id="end_usr_1234567abcdefg", ) page = page.data[0] print(page.id) post: summary: Create an inventory assembly item description: >- Creates an inventory assembly item that bundles existing inventory items. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. requestBody: required: true content: application/json: schema: type: object properties: name: type: string maxLength: 31 description: >- The case-insensitive name of this inventory assembly item. Not guaranteed to be unique because it does not include the names of its hierarchical parent objects like `fullName` does. For example, two inventory assembly items could both have the `name` "Deluxe Kit", but they could have unique `fullName` values, such as "Assemblies:Deluxe Kit" and "Inventory:Deluxe Kit". Maximum length: 31 characters. example: Deluxe Kit barcode: description: The inventory assembly item's barcode. type: object properties: value: description: The item's barcode value. example: '012345678905' type: string assignEvenIfUsed: description: >- Indicates whether to assign the barcode even if it is already used. example: false default: false type: boolean allowOverride: description: Indicates whether to allow the barcode to be overridden. example: false default: false type: boolean additionalProperties: false isActive: description: >- Indicates whether this inventory assembly item is active. Inactive objects are typically hidden from views and reports in QuickBooks. Defaults to `true`. example: true default: true type: boolean classId: description: >- The inventory assembly item'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. example: 80000001-1234567890 type: string maxLength: 36 parentId: description: >- The parent inventory assembly item one level above this one in the hierarchy. For example, if this inventory assembly item has a `fullName` of "Assemblies:Deluxe Kit", its parent has a `fullName` of "Assemblies". If this inventory assembly item is at the top level, this field will be `null`. example: 80000001-1234567890 type: string maxLength: 36 unitOfMeasureSetId: description: >- The unit-of-measure set associated with this inventory assembly item, which consists of a base unit and related units. example: 80000001-1234567890 type: string maxLength: 36 salesTaxCodeId: description: >- The default sales-tax code for this inventory assembly item, determining whether it is taxable or non-taxable. This can be overridden at the transaction-line level. 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. example: 80000001-1234567890 type: string maxLength: 36 salesDescription: description: >- The description of this inventory assembly item that appears on sales forms (e.g., invoices, sales receipts) when sold to customers. example: High-quality steel bolts suitable for construction type: string salesPrice: description: >- The price at which this inventory assembly item is sold to customers, represented as a decimal string. example: '19.99' type: string incomeAccountId: description: >- The income account used to track revenue from sales of this inventory assembly item. example: 80000001-1234567890 type: string maxLength: 36 purchaseDescription: description: >- The description of this inventory assembly item that appears on purchase forms (e.g., checks, bills, item receipts) when it is ordered or bought from vendors. example: Bulk purchase of steel bolts for inventory type: string purchaseCost: description: >- The cost at which this inventory assembly item is purchased from vendors, represented as a decimal string. example: '15.75' type: string purchaseTaxCodeId: description: >- The tax code applied to purchases of this inventory assembly item. Applicable in regions where purchase taxes are used, such as Canada or the UK. example: 80000001-1234567890 type: string maxLength: 36 cogsAccountId: description: >- The Cost of Goods Sold (COGS) account for this inventory assembly item, tracking the original direct costs of producing goods sold. example: 80000001-1234567890 type: string maxLength: 36 preferredVendorId: description: >- The preferred vendor from whom this inventory assembly item is typically purchased. example: 80000001-1234567890 type: string maxLength: 36 assetAccountId: description: >- The asset account used to track the current value of this inventory assembly item in inventory. example: 80000001-1234567890 type: string maxLength: 36 buildNotificationThreshold: description: >- The inventory assembly item's minimum quantity threshold that triggers a build notification in QuickBooks. When the sum of `quantityOnHand` (current inventory) and `quantityOnOrder` (pending purchase orders) drops below this threshold, QuickBooks will notify users that more units need to be built or assembled. This helps ensure adequate inventory levels for inventory assembly items. example: 10 type: number maximumQuantityOnHand: description: >- The maximum quantity of this inventory assembly item desired in inventory. example: 200 type: number quantityOnHand: description: >- The number of units of this inventory assembly item currently in inventory. `quantityOnHand` multiplied by `averageCost` equals `totalValue` for inventory item lists. To change the `quantityOnHand` for an inventory assembly item, you must use an inventory-adjustment instead of updating the inventory assembly item directly. example: 150 type: number totalValue: description: >- The total value of this inventory assembly item, represented as a decimal string. If `totalValue` is provided, `quantityOnHand` must also be provided and must be greater than zero. If both `quantityOnHand` and `purchaseCost` are provided, then `totalValue` will be set to `quantityOnHand` times `purchaseCost`, regardless of what `totalValue` is explicitly set to. Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45"). example: '1500.00' type: string inventoryDate: description: >- The date when this inventory assembly item was converted into an inventory item from some other type of item, in ISO 8601 format (YYYY-MM-DD). example: '2024-01-01' type: string format: date externalId: type: string format: uuid description: >- 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. **IMPORTANT**: This field must be formatted as a valid GUID; otherwise, QuickBooks will return an error. example: 12345678-abcd-1234-abcd-1234567890ab lines: description: The inventory assembly item's lines. minItems: 1 type: array items: type: object properties: inventoryItemId: description: >- The inventory item associated with this inventory assembly item line. example: 80000001-1234567890 type: string maxLength: 36 quantity: description: >- The quantity of the item associated with this inventory assembly item line. This field cannot be cleared. **NOTE**: Do not use this field if the associated item is a discount item. example: 5 type: number additionalProperties: false required: - name - incomeAccountId - cogsAccountId - assetAccountId additionalProperties: false responses: '200': description: Returns the newly created inventory assembly item. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_inventory_assembly_item' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const inventoryAssemblyItem = await conductor.qbd.inventoryAssemblyItems.create({ assetAccountId: '80000001-1234567890', cogsAccountId: '80000001-1234567890', incomeAccountId: '80000001-1234567890', name: 'Deluxe Kit', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(inventoryAssemblyItem.id); - lang: Python source: >- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) inventory_assembly_item = conductor.qbd.inventory_assembly_items.create( asset_account_id="80000001-1234567890", cogs_account_id="80000001-1234567890", income_account_id="80000001-1234567890", name="Deluxe Kit", conductor_end_user_id="end_usr_1234567abcdefg", ) print(inventory_assembly_item.id) /quickbooks-desktop/inventory-assembly-items/{id}: get: summary: Retrieve an inventory assembly item description: >- Retrieves an inventory assembly item by ID. **IMPORTANT:** If you need to fetch multiple specific inventory assembly items 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. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the inventory assembly item to retrieve. example: 80000001-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the inventory assembly item to retrieve. responses: '200': description: Returns the specified inventory assembly item. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_inventory_assembly_item' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const inventoryAssemblyItem = await conductor.qbd.inventoryAssemblyItems.retrieve( '80000001-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg' }, ); console.log(inventoryAssemblyItem.id); - lang: Python source: >- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) inventory_assembly_item = conductor.qbd.inventory_assembly_items.retrieve( id="80000001-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(inventory_assembly_item.id) post: summary: Update an inventory assembly item description: >- Updates an inventory assembly item. If you change the income account, set `updateExistingTransactionsIncomeAccount` to true so QuickBooks applies the new account to existing transactions that use the assembly. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the inventory assembly item to update. example: 80000001-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the inventory assembly item to update. requestBody: required: true content: application/json: schema: type: object properties: revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of the inventory assembly item 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. example: '1721172183' name: description: >- The case-insensitive name of this inventory assembly item. Not guaranteed to be unique because it does not include the names of its hierarchical parent objects like `fullName` does. For example, two inventory assembly items could both have the `name` "Deluxe Kit", but they could have unique `fullName` values, such as "Assemblies:Deluxe Kit" and "Inventory:Deluxe Kit". Maximum length: 31 characters. example: Deluxe Kit type: string maxLength: 31 barcode: description: The inventory assembly item's barcode. type: object properties: value: description: The item's barcode value. example: '012345678905' type: string assignEvenIfUsed: description: >- Indicates whether to assign the barcode even if it is already used. example: false default: false type: boolean allowOverride: description: Indicates whether to allow the barcode to be overridden. example: false default: false type: boolean additionalProperties: false isActive: description: >- Indicates whether this inventory assembly item is active. Inactive objects are typically hidden from views and reports in QuickBooks. Defaults to `true`. example: true type: boolean classId: description: >- The inventory assembly item'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. example: 80000001-1234567890 type: string maxLength: 36 parentId: description: >- The parent inventory assembly item one level above this one in the hierarchy. For example, if this inventory assembly item has a `fullName` of "Assemblies:Deluxe Kit", its parent has a `fullName` of "Assemblies". If this inventory assembly item is at the top level, this field will be `null`. example: 80000001-1234567890 type: string maxLength: 36 sku: description: >- The inventory assembly item's stock keeping unit (SKU), which is sometimes the manufacturer's part number. example: MPN-123456 type: string unitOfMeasureSetId: description: >- The unit-of-measure set associated with this inventory assembly item, which consists of a base unit and related units. example: 80000001-1234567890 type: string maxLength: 36 forceUnitOfMeasureChange: description: >- Indicates whether to allow changing the inventory assembly item's unit-of-measure set (using the `unitOfMeasureSetId` field) when the base unit of the new unit-of-measure set does not match that of the currently assigned set. Without setting this field to `true` in this scenario, the request will fail with an error; hence, this field is equivalent to accepting the warning prompt in the QuickBooks UI. NOTE: Changing the base unit requires you to update the item's quantities-on-hand and cost to reflect the new unit; otherwise, these values will be inaccurate. Alternatively, consider creating a new item with the desired unit-of-measure set and deactivating the old item. example: false type: boolean salesTaxCodeId: description: >- The default sales-tax code for this inventory assembly item, determining whether it is taxable or non-taxable. This can be overridden at the transaction-line level. 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. example: 80000001-1234567890 type: string maxLength: 36 salesDescription: description: >- The description of this inventory assembly item that appears on sales forms (e.g., invoices, sales receipts) when sold to customers. example: High-quality steel bolts suitable for construction type: string salesPrice: description: >- The price at which this inventory assembly item is sold to customers, represented as a decimal string. example: '19.99' type: string incomeAccountId: description: >- The income account used to track revenue from sales of this inventory assembly item. example: 80000001-1234567890 type: string maxLength: 36 updateExistingTransactionsIncomeAccount: description: >- When `true`, applies the new income account (specified by the `incomeAccountId` field) to all existing transactions that use this inventory assembly item. This updates historical data and should be used with caution. The update will fail if any affected transaction falls within a closed accounting period. If this parameter is not specified, QuickBooks will prompt the user before making any changes. example: false type: boolean purchaseDescription: description: >- The description of this inventory assembly item that appears on purchase forms (e.g., checks, bills, item receipts) when it is ordered or bought from vendors. example: Bulk purchase of steel bolts for inventory type: string purchaseCost: description: >- The cost at which this inventory assembly item is purchased from vendors, represented as a decimal string. example: '15.75' type: string purchaseTaxCodeId: description: >- The tax code applied to purchases of this inventory assembly item. Applicable in regions where purchase taxes are used, such as Canada or the UK. example: 80000001-1234567890 type: string maxLength: 36 cogsAccountId: description: >- The Cost of Goods Sold (COGS) account for this inventory assembly item, tracking the original direct costs of producing goods sold. example: 80000001-1234567890 type: string maxLength: 36 preferredVendorId: description: >- The preferred vendor from whom this inventory assembly item is typically purchased. example: 80000001-1234567890 type: string maxLength: 36 assetAccountId: description: >- The asset account used to track the current value of this inventory assembly item in inventory. example: 80000001-1234567890 type: string maxLength: 36 buildNotificationThreshold: description: >- The inventory assembly item's minimum quantity threshold that triggers a build notification in QuickBooks. When the sum of `quantityOnHand` (current inventory) and `quantityOnOrder` (pending purchase orders) drops below this threshold, QuickBooks will notify users that more units need to be built or assembled. This helps ensure adequate inventory levels for inventory assembly items. example: 10 type: number maximumQuantityOnHand: description: >- The maximum quantity of this inventory assembly item desired in inventory. example: 200 type: number clearItemLines: description: >- When `true`, removes all existing item lines associated with this inventory assembly item. To modify or add individual item lines, use the field `itemLines` instead. example: false type: boolean lines: description: The inventory assembly item's lines. minItems: 1 type: array items: type: object properties: inventoryItemId: description: >- The inventory item associated with this inventory assembly item line. example: 80000001-1234567890 type: string maxLength: 36 quantity: description: >- The quantity of the item associated with this inventory assembly item line. This field cannot be cleared. **NOTE**: Do not use this field if the associated item is a discount item. example: 5 type: number additionalProperties: false required: - revisionNumber additionalProperties: false responses: '200': description: Returns the updated inventory assembly item. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_inventory_assembly_item' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const inventoryAssemblyItem = await conductor.qbd.inventoryAssemblyItems.update( '80000001-1234567890', { revisionNumber: '1721172183', conductorEndUserId: 'end_usr_1234567abcdefg' }, ); console.log(inventoryAssemblyItem.id); - lang: Python source: >- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) inventory_assembly_item = conductor.qbd.inventory_assembly_items.update( id="80000001-1234567890", revision_number="1721172183", conductor_end_user_id="end_usr_1234567abcdefg", ) print(inventory_assembly_item.id) /quickbooks-desktop/inventory-items: get: summary: List all inventory items description: >- Returns a list of inventory items. Use the `cursor` parameter to paginate through the results. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: query name: ids schema: description: >- Filter for specific inventory items 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: - 80000001-1234567890 type: array items: type: string description: >- Filter for specific inventory items 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. - in: query name: fullNames schema: description: >- Filter for specific inventory items by their full-name(s), case-insensitive. Like `id`, `fullName` is a unique identifier for an inventory item, formed by by combining the names of its parent objects with its own `name`, separated by colons. For example, if an inventory item is under "Kitchen" and has the `name` "Cabinet", its `fullName` would be "Kitchen:Cabinet". **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: - Kitchen:Cabinet type: array items: type: string description: >- Filter for specific inventory items by their full-name(s), case-insensitive. Like `id`, `fullName` is a unique identifier for an inventory item, formed by by combining the names of its parent objects with its own `name`, separated by colons. For example, if an inventory item is under "Kitchen" and has the `name` "Cabinet", its `fullName` would be "Kitchen:Cabinet". **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. - in: query name: limit schema: default: 150 description: >- 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. example: 150 type: integer minimum: 1 maximum: 150 description: >- 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. - in: query name: cursor schema: description: >- 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 type: string description: >- 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. - in: query name: status schema: description: Filter for inventory items that are active, inactive, or both. example: active type: string enum: - active - all - inactive default: active description: Filter for inventory items that are active, inactive, or both. - in: query name: updatedAfter schema: description: >- Filter for inventory items 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. example: 2025-01-01T12:34:56.000Z type: string description: >- Filter for inventory items 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. - in: query name: updatedBefore schema: description: >- Filter for inventory items 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. example: 2025-02-01T12:34:56.000Z type: string description: >- Filter for inventory items 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. - in: query name: nameContains schema: description: >- Filter for inventory items whose `name` contains this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameStartsWith` or `nameEndsWith`. example: ABC type: string description: >- Filter for inventory items whose `name` contains this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameStartsWith` or `nameEndsWith`. - in: query name: nameStartsWith schema: description: >- Filter for inventory items whose `name` starts with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameEndsWith`. example: ABC type: string description: >- Filter for inventory items whose `name` starts with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameEndsWith`. - in: query name: nameEndsWith schema: description: >- Filter for inventory items whose `name` ends with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameStartsWith`. example: ABC type: string description: >- Filter for inventory items whose `name` ends with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameStartsWith`. - in: query name: nameFrom schema: description: >- Filter for inventory items whose `name` is alphabetically greater than or equal to this value. example: A type: string description: >- Filter for inventory items whose `name` is alphabetically greater than or equal to this value. - in: query name: nameTo schema: description: >- Filter for inventory items whose `name` is alphabetically less than or equal to this value. example: Z type: string description: >- Filter for inventory items whose `name` is alphabetically less than or equal to this value. - in: query name: classIds schema: description: >- Filter for inventory items of these classes. A class is a way end-users can categorize inventory items in QuickBooks. example: - 80000001-1234567890 type: array items: type: string description: >- Filter for inventory items of these classes. A class is a way end-users can categorize inventory items in QuickBooks. responses: '200': description: Returns a list of inventory items. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: objectType: description: The type of object. This value is always `"list"`. example: list type: string const: list url: type: string description: The endpoint URL where this list can be accessed. example: /v1/quickbooks-desktop/inventory-items data: type: array items: $ref: '#/components/schemas/qbd_inventory_item' description: The array of inventory items. nextCursor: anyOf: - type: string - type: 'null' description: >- The `nextCursor` is a pagination token returned in the response when you use the `limit` parameter in your request. To retrieve subsequent pages of results, include this token as the value of the `cursor` request parameter in your following API calls. **NOTE**: The `nextCursor` value remains constant throughout the pagination process for a specific list instance; continue to use the same `nextCursor` token in each request to fetch additional pages. example: 12345678-abcd-abcd-example-1234567890ab remainingCount: anyOf: - type: number - type: 'null' description: The number of objects remaining to be fetched. example: 10 hasMore: type: boolean description: Indicates whether there are more objects to be fetched. required: - objectType - url - data - nextCursor - remainingCount - hasMore additionalProperties: false x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); // Automatically fetches more pages as needed. for await (const inventoryItem of conductor.qbd.inventoryItems.list({ conductorEndUserId: 'end_usr_1234567abcdefg', })) { console.log(inventoryItem.id); } - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) page = conductor.qbd.inventory_items.list( conductor_end_user_id="end_usr_1234567abcdefg", ) page = page.data[0] print(page.id) post: summary: Create an inventory item description: Creates a new inventory item. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. requestBody: required: true content: application/json: schema: type: object properties: name: type: string maxLength: 31 description: >- The case-insensitive name of this inventory item. Not guaranteed to be unique because it does not include the names of its hierarchical parent objects like `fullName` does. For example, two inventory items could both have the `name` "Cabinet", but they could have unique `fullName` values, such as "Kitchen:Cabinet" and "Inventory:Cabinet". Maximum length: 31 characters. example: Cabinet barcode: description: The inventory item's barcode. type: object properties: value: description: The item's barcode value. example: '012345678905' type: string assignEvenIfUsed: description: >- Indicates whether to assign the barcode even if it is already used. example: false default: false type: boolean allowOverride: description: Indicates whether to allow the barcode to be overridden. example: false default: false type: boolean additionalProperties: false isActive: description: >- Indicates whether this inventory item is active. Inactive objects are typically hidden from views and reports in QuickBooks. Defaults to `true`. example: true default: true type: boolean classId: description: >- The inventory item'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. example: 80000001-1234567890 type: string maxLength: 36 parentId: description: >- The parent inventory item one level above this one in the hierarchy. For example, if this inventory item has a `fullName` of "Kitchen:Cabinet", its parent has a `fullName` of "Kitchen". If this inventory item is at the top level, this field will be `null`. example: 80000001-1234567890 type: string maxLength: 36 sku: description: >- The inventory item's stock keeping unit (SKU), which is sometimes the manufacturer's part number. example: MPN-123456 type: string unitOfMeasureSetId: description: >- The unit-of-measure set associated with this inventory item, which consists of a base unit and related units. example: 80000001-1234567890 type: string maxLength: 36 salesTaxCodeId: description: >- The default sales-tax code for this inventory item, determining whether it is taxable or non-taxable. This can be overridden at the transaction-line level. 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. example: 80000001-1234567890 type: string maxLength: 36 salesDescription: description: >- The description of this inventory item that appears on sales forms (e.g., invoices, sales receipts) when sold to customers. example: High-quality steel bolts suitable for construction type: string salesPrice: description: >- The price at which this inventory item is sold to customers, represented as a decimal string. example: '19.99' type: string incomeAccountId: description: >- The income account used to track revenue from sales of this inventory item. example: 80000001-1234567890 type: string maxLength: 36 purchaseDescription: description: >- The description of this inventory item that appears on purchase forms (e.g., checks, bills, item receipts) when it is ordered or bought from vendors. example: Bulk purchase of steel bolts for inventory type: string purchaseCost: description: >- The cost at which this inventory item is purchased from vendors, represented as a decimal string. example: '15.75' type: string purchaseTaxCodeId: description: >- The tax code applied to purchases of this inventory item. Applicable in regions where purchase taxes are used, such as Canada or the UK. example: 80000001-1234567890 type: string maxLength: 36 cogsAccountId: description: >- The Cost of Goods Sold (COGS) account for this inventory item, tracking the original direct costs of producing goods sold. example: 80000001-1234567890 type: string maxLength: 36 preferredVendorId: description: >- The preferred vendor from whom this inventory item is typically purchased. example: 80000001-1234567890 type: string maxLength: 36 assetAccountId: description: >- The asset account used to track the current value of this inventory item in inventory. example: 80000001-1234567890 type: string maxLength: 36 reorderPoint: description: >- The minimum quantity of this inventory item at which QuickBooks prompts for reordering. example: 50 type: number maximumQuantityOnHand: description: >- The maximum quantity of this inventory item desired in inventory. example: 200 type: number quantityOnHand: description: >- The number of units of this inventory item currently in inventory. `quantityOnHand` multiplied by `averageCost` equals `totalValue` for inventory item lists. To change the `quantityOnHand` for an inventory item, you must use an inventory-adjustment instead of updating the inventory item directly. example: 150 type: number totalValue: description: >- The total value of this inventory item, represented as a decimal string. If `totalValue` is provided, `quantityOnHand` must also be provided and must be greater than zero. If both `quantityOnHand` and `purchaseCost` are provided, then `totalValue` will be set to `quantityOnHand` times `purchaseCost`, regardless of what `totalValue` is explicitly set to. Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45"). example: '1500.00' type: string inventoryDate: description: >- The date when this inventory item was converted into an inventory item from some other type of item, in ISO 8601 format (YYYY-MM-DD). example: '2024-01-01' type: string format: date externalId: type: string format: uuid description: >- 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. **IMPORTANT**: This field must be formatted as a valid GUID; otherwise, QuickBooks will return an error. example: 12345678-abcd-1234-abcd-1234567890ab required: - name - incomeAccountId - cogsAccountId - assetAccountId additionalProperties: false responses: '200': description: Returns the newly created inventory item. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_inventory_item' x-codeSamples: - lang: JavaScript source: |- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const inventoryItem = await conductor.qbd.inventoryItems.create({ assetAccountId: '80000001-1234567890', cogsAccountId: '80000001-1234567890', incomeAccountId: '80000001-1234567890', name: 'Cabinet', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(inventoryItem.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) inventory_item = conductor.qbd.inventory_items.create( asset_account_id="80000001-1234567890", cogs_account_id="80000001-1234567890", income_account_id="80000001-1234567890", name="Cabinet", conductor_end_user_id="end_usr_1234567abcdefg", ) print(inventory_item.id) /quickbooks-desktop/inventory-items/{id}: get: summary: Retrieve an inventory item description: >- Retrieves an inventory item by ID. **IMPORTANT:** If you need to fetch multiple specific inventory items 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. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the inventory item to retrieve. example: 80000001-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the inventory item to retrieve. responses: '200': description: Returns the specified inventory item. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_inventory_item' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const inventoryItem = await conductor.qbd.inventoryItems.retrieve('80000001-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(inventoryItem.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) inventory_item = conductor.qbd.inventory_items.retrieve( id="80000001-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(inventory_item.id) post: summary: Update an inventory item description: >- Updates an inventory item. If you switch the income account, set `updateExistingTransactionsIncomeAccount` to true so QuickBooks applies the new account to existing transactions that reference the item. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the inventory item to update. example: 80000001-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the inventory item to update. requestBody: required: true content: application/json: schema: type: object properties: revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of the inventory item 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. example: '1721172183' name: description: >- The case-insensitive name of this inventory item. Not guaranteed to be unique because it does not include the names of its hierarchical parent objects like `fullName` does. For example, two inventory items could both have the `name` "Cabinet", but they could have unique `fullName` values, such as "Kitchen:Cabinet" and "Inventory:Cabinet". Maximum length: 31 characters. example: Cabinet type: string maxLength: 31 barcode: description: The inventory item's barcode. type: object properties: value: description: The item's barcode value. example: '012345678905' type: string assignEvenIfUsed: description: >- Indicates whether to assign the barcode even if it is already used. example: false default: false type: boolean allowOverride: description: Indicates whether to allow the barcode to be overridden. example: false default: false type: boolean additionalProperties: false isActive: description: >- Indicates whether this inventory item is active. Inactive objects are typically hidden from views and reports in QuickBooks. Defaults to `true`. example: true type: boolean classId: description: >- The inventory item'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. example: 80000001-1234567890 type: string maxLength: 36 parentId: description: >- The parent inventory item one level above this one in the hierarchy. For example, if this inventory item has a `fullName` of "Kitchen:Cabinet", its parent has a `fullName` of "Kitchen". If this inventory item is at the top level, this field will be `null`. example: 80000001-1234567890 type: string maxLength: 36 sku: description: >- The inventory item's stock keeping unit (SKU), which is sometimes the manufacturer's part number. example: MPN-123456 type: string unitOfMeasureSetId: description: >- The unit-of-measure set associated with this inventory item, which consists of a base unit and related units. example: 80000001-1234567890 type: string maxLength: 36 forceUnitOfMeasureChange: description: >- Indicates whether to allow changing the inventory item's unit-of-measure set (using the `unitOfMeasureSetId` field) when the base unit of the new unit-of-measure set does not match that of the currently assigned set. Without setting this field to `true` in this scenario, the request will fail with an error; hence, this field is equivalent to accepting the warning prompt in the QuickBooks UI. NOTE: Changing the base unit requires you to update the item's quantities-on-hand and cost to reflect the new unit; otherwise, these values will be inaccurate. Alternatively, consider creating a new item with the desired unit-of-measure set and deactivating the old item. example: false type: boolean salesTaxCodeId: description: >- The default sales-tax code for this inventory item, determining whether it is taxable or non-taxable. This can be overridden at the transaction-line level. 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. example: 80000001-1234567890 type: string maxLength: 36 salesDescription: description: >- The description of this inventory item that appears on sales forms (e.g., invoices, sales receipts) when sold to customers. example: High-quality steel bolts suitable for construction type: string salesPrice: description: >- The price at which this inventory item is sold to customers, represented as a decimal string. example: '19.99' type: string incomeAccountId: description: >- The income account used to track revenue from sales of this inventory item. example: 80000001-1234567890 type: string maxLength: 36 updateExistingTransactionsIncomeAccount: description: >- When `true`, applies the new income account (specified by the `incomeAccountId` field) to all existing transactions that use this inventory item. This updates historical data and should be used with caution. The update will fail if any affected transaction falls within a closed accounting period. If this parameter is not specified, QuickBooks will prompt the user before making any changes. example: false type: boolean purchaseDescription: description: >- The description of this inventory item that appears on purchase forms (e.g., checks, bills, item receipts) when it is ordered or bought from vendors. example: Bulk purchase of steel bolts for inventory type: string purchaseCost: description: >- The cost at which this inventory item is purchased from vendors, represented as a decimal string. example: '15.75' type: string purchaseTaxCodeId: description: >- The tax code applied to purchases of this inventory item. Applicable in regions where purchase taxes are used, such as Canada or the UK. example: 80000001-1234567890 type: string maxLength: 36 cogsAccountId: description: >- The Cost of Goods Sold (COGS) account for this inventory item, tracking the original direct costs of producing goods sold. example: 80000001-1234567890 type: string maxLength: 36 updateExistingTransactionsCogsAccount: description: >- When `true`, applies the new COGS account (specified by the `cogsAccountId` field) to all existing transactions that use this inventory item. This updates historical data and should be used with caution. The update will fail if any affected transaction falls within a closed accounting period. If this parameter is not specified, QuickBooks will prompt the user before making any changes. example: false type: boolean preferredVendorId: description: >- The preferred vendor from whom this inventory item is typically purchased. example: 80000001-1234567890 type: string maxLength: 36 assetAccountId: description: >- The asset account used to track the current value of this inventory item in inventory. example: 80000001-1234567890 type: string maxLength: 36 reorderPoint: description: >- The minimum quantity of this inventory item at which QuickBooks prompts for reordering. example: 50 type: number maximumQuantityOnHand: description: >- The maximum quantity of this inventory item desired in inventory. example: 200 type: number required: - revisionNumber additionalProperties: false responses: '200': description: Returns the updated inventory item. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_inventory_item' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const inventoryItem = await conductor.qbd.inventoryItems.update('80000001-1234567890', { revisionNumber: '1721172183', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(inventoryItem.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) inventory_item = conductor.qbd.inventory_items.update( id="80000001-1234567890", revision_number="1721172183", conductor_end_user_id="end_usr_1234567abcdefg", ) print(inventory_item.id) /quickbooks-desktop/inventory-sites: get: summary: List all inventory sites description: >- Returns a list of inventory sites. **NOTE:** QuickBooks Desktop does not support pagination for inventory sites; hence, there is no `cursor` parameter. Users typically have few inventory sites. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: query name: ids schema: description: >- Filter for specific inventory sites 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: - 80000001-1234567890 type: array items: type: string description: >- Filter for specific inventory sites 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. - in: query name: names schema: description: >- Filter for specific inventory sites by their name(s), case-insensitive. Like `id`, `name` is a unique identifier for an inventory site. **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: - Stockroom type: array items: type: string description: >- Filter for specific inventory sites by their name(s), case-insensitive. Like `id`, `name` is a unique identifier for an inventory site. **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. - in: query name: status schema: description: Filter for inventory sites that are active, inactive, or both. example: active type: string enum: - active - all - inactive default: active description: Filter for inventory sites that are active, inactive, or both. - in: query name: updatedAfter schema: description: >- Filter for inventory sites 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. example: 2025-01-01T12:34:56.000Z type: string description: >- Filter for inventory sites 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. - in: query name: updatedBefore schema: description: >- Filter for inventory sites 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. example: 2025-02-01T12:34:56.000Z type: string description: >- Filter for inventory sites 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. - in: query name: nameContains schema: description: >- Filter for inventory sites whose `name` contains this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameStartsWith` or `nameEndsWith`. example: ABC type: string description: >- Filter for inventory sites whose `name` contains this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameStartsWith` or `nameEndsWith`. - in: query name: nameStartsWith schema: description: >- Filter for inventory sites whose `name` starts with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameEndsWith`. example: ABC type: string description: >- Filter for inventory sites whose `name` starts with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameEndsWith`. - in: query name: nameEndsWith schema: description: >- Filter for inventory sites whose `name` ends with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameStartsWith`. example: ABC type: string description: >- Filter for inventory sites whose `name` ends with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameStartsWith`. - in: query name: nameFrom schema: description: >- Filter for inventory sites whose `name` is alphabetically greater than or equal to this value. example: A type: string description: >- Filter for inventory sites whose `name` is alphabetically greater than or equal to this value. - in: query name: nameTo schema: description: >- Filter for inventory sites whose `name` is alphabetically less than or equal to this value. example: Z type: string description: >- Filter for inventory sites whose `name` is alphabetically less than or equal to this value. responses: '200': description: Returns a list of inventory sites. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: objectType: description: The type of object. This value is always `"list"`. example: list type: string const: list url: type: string description: The endpoint URL where this list can be accessed. example: /v1/quickbooks-desktop/inventory-sites data: type: array items: $ref: '#/components/schemas/qbd_inventory_site' description: The array of inventory sites. required: - objectType - url - data additionalProperties: false x-codeSamples: - lang: JavaScript source: |- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const inventorySites = await conductor.qbd.inventorySites.list({ conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(inventorySites.data); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) inventory_sites = conductor.qbd.inventory_sites.list( conductor_end_user_id="end_usr_1234567abcdefg", ) print(inventory_sites.data) post: summary: Create an inventory site description: >- Creates an inventory site for companies using QuickBooks Enterprise with Advanced Inventory. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. requestBody: required: true content: application/json: schema: type: object properties: name: type: string maxLength: 31 description: >- The case-insensitive unique name of this inventory site, unique across all inventory sites. **NOTE**: Inventory sites do not have a `fullName` field because they are not hierarchical objects, which is why `name` is unique for them but not for objects that have parents. Maximum length: 31 characters. example: Stockroom isActive: description: >- Indicates whether this inventory site is active. Inactive objects are typically hidden from views and reports in QuickBooks. Defaults to `true`. example: true default: true type: boolean parentId: description: >- The parent inventory site one level above this one in the hierarchy. example: 80000001-1234567890 type: string maxLength: 36 description: description: A description of this inventory site. example: Main Stockroom for Electronics type: string email: description: The inventory site's email address. example: inventory-site@example.com type: string address: description: The inventory site's address. type: object properties: line1: description: >- The first line of the site address (e.g., street, PO Box, or company name). Maximum length: 41 characters. example: Conductor Labs Inc. type: string maxLength: 41 line2: description: >- The second line of the site address, if needed (e.g., apartment, suite, unit, or building). Maximum length: 41 characters. example: 540 Market St. type: string maxLength: 41 line3: description: |- The third line of the site address, if needed. Maximum length: 41 characters. example: Suite 100 type: string maxLength: 41 line4: description: |- The fourth line of the site address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 line5: description: |- The fifth line of the site address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 city: description: >- The city, district, suburb, town, or village name of the site address. Maximum length: 31 characters. example: San Francisco type: string maxLength: 31 state: description: >- The state, county, province, or region name of the site address. Maximum length: 21 characters. example: CA type: string maxLength: 21 postalCode: description: |- The postal code or ZIP code of the site address. Maximum length: 13 characters. example: '94110' type: string maxLength: 13 country: description: The country name of the site address. example: United States type: string additionalProperties: false required: - name additionalProperties: false responses: '200': description: Returns the newly created inventory site. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_inventory_site' x-codeSamples: - lang: JavaScript source: |- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const inventorySite = await conductor.qbd.inventorySites.create({ name: 'Stockroom', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(inventorySite.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) inventory_site = conductor.qbd.inventory_sites.create( name="Stockroom", conductor_end_user_id="end_usr_1234567abcdefg", ) print(inventory_site.id) /quickbooks-desktop/inventory-sites/{id}: get: summary: Retrieve an inventory site description: >- Retrieves an inventory site by ID. **IMPORTANT:** If you need to fetch multiple specific inventory sites 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. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the inventory site to retrieve. example: 80000001-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the inventory site to retrieve. responses: '200': description: Returns the specified inventory site. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_inventory_site' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const inventorySite = await conductor.qbd.inventorySites.retrieve('80000001-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(inventorySite.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) inventory_site = conductor.qbd.inventory_sites.retrieve( id="80000001-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(inventory_site.id) post: summary: Update an inventory site description: Updates an existing inventory site. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the inventory site to update. example: 80000001-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the inventory site to update. requestBody: required: true content: application/json: schema: type: object properties: revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of the inventory site 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. example: '1721172183' name: description: >- The case-insensitive unique name of this inventory site, unique across all inventory sites. **NOTE**: Inventory sites do not have a `fullName` field because they are not hierarchical objects, which is why `name` is unique for them but not for objects that have parents. Maximum length: 31 characters. example: Stockroom type: string maxLength: 31 isActive: description: >- Indicates whether this inventory site is active. Inactive objects are typically hidden from views and reports in QuickBooks. Defaults to `true`. example: true type: boolean parentId: description: >- The parent inventory site one level above this one in the hierarchy. example: 80000001-1234567890 type: string maxLength: 36 description: description: A description of this inventory site. example: Main Stockroom for Electronics type: string contact: description: >- The name of the primary contact person for this inventory site. example: Jane Smith type: string phone: description: |- The inventory site's primary telephone number. Maximum length: 21 characters. example: +1-555-123-4567 type: string maxLength: 21 fax: description: |- The inventory site's fax number. Maximum length: 21 characters. example: +1-555-555-1212 type: string maxLength: 21 email: description: The inventory site's email address. example: inventory-site@example.com type: string address: description: The inventory site's address. type: object properties: line1: description: >- The first line of the site address (e.g., street, PO Box, or company name). Maximum length: 41 characters. example: Conductor Labs Inc. type: string maxLength: 41 line2: description: >- The second line of the site address, if needed (e.g., apartment, suite, unit, or building). Maximum length: 41 characters. example: 540 Market St. type: string maxLength: 41 line3: description: |- The third line of the site address, if needed. Maximum length: 41 characters. example: Suite 100 type: string maxLength: 41 line4: description: |- The fourth line of the site address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 line5: description: |- The fifth line of the site address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 city: description: >- The city, district, suburb, town, or village name of the site address. Maximum length: 31 characters. example: San Francisco type: string maxLength: 31 state: description: >- The state, county, province, or region name of the site address. Maximum length: 21 characters. example: CA type: string maxLength: 21 postalCode: description: |- The postal code or ZIP code of the site address. Maximum length: 13 characters. example: '94110' type: string maxLength: 13 country: description: The country name of the site address. example: United States type: string additionalProperties: false required: - revisionNumber additionalProperties: false responses: '200': description: Returns the updated inventory site. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_inventory_site' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const inventorySite = await conductor.qbd.inventorySites.update('80000001-1234567890', { revisionNumber: '1721172183', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(inventorySite.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) inventory_site = conductor.qbd.inventory_sites.update( id="80000001-1234567890", revision_number="1721172183", conductor_end_user_id="end_usr_1234567abcdefg", ) print(inventory_site.id) /quickbooks-desktop/invoices: get: summary: List all invoices description: >- Returns a list of invoices. Use the `cursor` parameter to paginate through the results. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: query name: ids schema: description: >- Filter for specific invoices 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 type: array items: type: string description: >- Filter for specific invoices 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. - in: query name: refNumbers schema: description: >- Filter for specific invoices 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: - INVOICE-1234 type: array items: type: string description: >- Filter for specific invoices 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. - in: query name: limit schema: default: 150 description: >- 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. example: 150 type: integer minimum: 1 maximum: 150 description: >- 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. - in: query name: cursor schema: description: >- 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 type: string description: >- 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. - in: query name: updatedAfter schema: description: >- Filter for invoices 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. example: 2025-01-01T12:34:56.000Z type: string description: >- Filter for invoices 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. - in: query name: updatedBefore schema: description: >- Filter for invoices 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. example: 2025-02-01T12:34:56.000Z type: string description: >- Filter for invoices 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. - in: query name: transactionDateFrom schema: description: >- Filter for invoices 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-01` → `2025-01-01T00:00:00`). example: '2025-01-01' type: string format: date description: >- Filter for invoices 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-01` → `2025-01-01T00:00:00`). - in: query name: transactionDateTo schema: description: >- Filter for invoices 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-01` → `2025-01-01T23:59:59`). example: '2025-02-01' type: string format: date description: >- Filter for invoices 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-01` → `2025-01-01T23:59:59`). - in: query name: customerIds schema: description: Filter for invoices created for these customers. example: - 80000001-1234567890 type: array items: type: string description: Filter for invoices created for these customers. - in: query name: accountIds schema: description: Filter for invoices associated with these accounts. example: - 80000001-1234567890 type: array items: type: string description: Filter for invoices associated with these accounts. - in: query name: refNumberContains schema: description: >- Filter for invoices whose `refNumber` contains this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberStartsWith` or `refNumberEndsWith`. example: INV-1234 type: string description: >- Filter for invoices whose `refNumber` contains this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberStartsWith` or `refNumberEndsWith`. - in: query name: refNumberStartsWith schema: description: >- Filter for invoices whose `refNumber` starts with this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberContains` or `refNumberEndsWith`. example: INV type: string description: >- Filter for invoices whose `refNumber` starts with this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberContains` or `refNumberEndsWith`. - in: query name: refNumberEndsWith schema: description: >- Filter for invoices whose `refNumber` ends with this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberContains` or `refNumberStartsWith`. example: '1234' type: string description: >- Filter for invoices whose `refNumber` ends with this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberContains` or `refNumberStartsWith`. - in: query name: refNumberFrom schema: description: >- Filter for invoices 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: INV-0001 type: string description: >- Filter for invoices 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. - in: query name: refNumberTo schema: description: >- Filter for invoices 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: INV-9999 type: string description: >- Filter for invoices 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. - in: query name: currencyIds schema: description: Filter for invoices in these currencies. example: - 80000001-1234567890 type: array items: type: string description: Filter for invoices in these currencies. - in: query name: paymentStatus schema: description: Filter for invoices that are paid, not paid, or both. example: paid type: string enum: - all - paid - not_paid default: all description: Filter for invoices that are paid, not paid, or both. - in: query name: includeLineItems schema: description: Whether to include line items in the response. Defaults to `true`. example: true type: boolean default: true description: Whether to include line items in the response. Defaults to `true`. - in: query name: includeLinkedTransactions schema: description: >- Whether to include linked transactions in the response. Defaults to `false`. For example, a payment linked to the corresponding invoice. example: false type: boolean default: false description: >- Whether to include linked transactions in the response. Defaults to `false`. For example, a payment linked to the corresponding invoice. responses: '200': description: Returns a list of invoices. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: objectType: description: The type of object. This value is always `"list"`. example: list type: string const: list url: type: string description: The endpoint URL where this list can be accessed. example: /v1/quickbooks-desktop/invoices data: type: array items: $ref: '#/components/schemas/qbd_invoice' description: The array of invoices. nextCursor: anyOf: - type: string - type: 'null' description: >- The `nextCursor` is a pagination token returned in the response when you use the `limit` parameter in your request. To retrieve subsequent pages of results, include this token as the value of the `cursor` request parameter in your following API calls. **NOTE**: The `nextCursor` value remains constant throughout the pagination process for a specific list instance; continue to use the same `nextCursor` token in each request to fetch additional pages. example: 12345678-abcd-abcd-example-1234567890ab remainingCount: anyOf: - type: number - type: 'null' description: The number of objects remaining to be fetched. example: 10 hasMore: type: boolean description: Indicates whether there are more objects to be fetched. required: - objectType - url - data - nextCursor - remainingCount - hasMore additionalProperties: false x-codeSamples: - lang: JavaScript source: |- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); // Automatically fetches more pages as needed. for await (const invoice of conductor.qbd.invoices.list({ conductorEndUserId: 'end_usr_1234567abcdefg', })) { console.log(invoice.id); } - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) page = conductor.qbd.invoices.list( conductor_end_user_id="end_usr_1234567abcdefg", ) page = page.data[0] print(page.id) post: summary: Create an invoice description: >- Creates an invoice to bill a customer when goods or services were delivered before payment. Use a sales receipt instead if the sale was paid in full. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. requestBody: required: true content: application/json: schema: type: object properties: customerId: description: The customer or customer-job associated with this invoice. example: 80000001-1234567890 type: string maxLength: 36 classId: description: >- The invoice'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 invoice's line items unless overridden at the line item level. example: 80000001-1234567890 type: string maxLength: 36 receivablesAccountId: description: >- The Accounts-Receivable (A/R) account to which this invoice is assigned, used to track the amount owed. If omitted, QuickBooks Desktop uses the default A/R account configured in the company file. **IMPORTANT**: If this invoice is linked to other transactions, this A/R account must match the `receivablesAccount` used in all linked transactions. example: 80000001-1234567890 type: string maxLength: 36 documentTemplateId: description: >- The predefined template in QuickBooks that determines the layout and formatting for this invoice when printed or displayed. example: 80000001-1234567890 type: string maxLength: 36 transactionDate: type: string format: date description: The date of this invoice, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-01' refNumber: description: >- The case-sensitive user-defined reference number for this invoice, 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. When left blank in this create request, this field will be left blank in QuickBooks (i.e., it does *not* auto-increment). Maximum length: 11 characters. example: INV-1234 type: string maxLength: 11 billingAddress: description: The invoice's billing address. type: object properties: line1: description: >- The first line of the address (e.g., street, PO Box, or company name). Maximum length: 41 characters. example: Conductor Labs Inc. type: string maxLength: 41 line2: description: >- The second line of the address, if needed (e.g., apartment, suite, unit, or building). Maximum length: 41 characters. example: 540 Market St. type: string maxLength: 41 line3: description: |- The third line of the address, if needed. Maximum length: 41 characters. example: Suite 100 type: string maxLength: 41 line4: description: |- The fourth line of the address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 line5: description: |- The fifth line of the address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 city: description: >- The city, district, suburb, town, or village name of the address. Maximum length: 31 characters. example: San Francisco type: string maxLength: 31 state: description: >- The state, county, province, or region name of the address. Maximum length: 21 characters. example: CA type: string maxLength: 21 postalCode: description: |- The postal code or ZIP code of the address. Maximum length: 13 characters. example: '94110' type: string maxLength: 13 country: description: The country name of the address. example: United States type: string note: description: >- A note written at the bottom of the address in the form in which it appears, such as the invoice form. example: Conductor HQ type: string additionalProperties: false shippingAddress: description: The invoice's shipping address. type: object properties: line1: description: >- The first line of the address (e.g., street, PO Box, or company name). Maximum length: 41 characters. example: Conductor Labs Inc. type: string maxLength: 41 line2: description: >- The second line of the address, if needed (e.g., apartment, suite, unit, or building). Maximum length: 41 characters. example: 540 Market St. type: string maxLength: 41 line3: description: |- The third line of the address, if needed. Maximum length: 41 characters. example: Suite 100 type: string maxLength: 41 line4: description: |- The fourth line of the address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 line5: description: |- The fifth line of the address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 city: description: >- The city, district, suburb, town, or village name of the address. Maximum length: 31 characters. example: San Francisco type: string maxLength: 31 state: description: >- The state, county, province, or region name of the address. Maximum length: 21 characters. example: CA type: string maxLength: 21 postalCode: description: |- The postal code or ZIP code of the address. Maximum length: 13 characters. example: '94110' type: string maxLength: 13 country: description: The country name of the address. example: United States type: string note: description: >- A note written at the bottom of the address in the form in which it appears, such as the invoice form. example: Conductor HQ type: string additionalProperties: false isPending: description: >- Indicates whether this invoice has not been completed or is in a draft version. example: false type: boolean isFinanceCharge: description: >- Whether this invoice includes a finance charge. This field is immutable and can only be set during invoice creation. example: true type: boolean purchaseOrderNumber: description: >- The customer's Purchase Order (PO) number associated with this invoice. This field is often used to cross-reference the invoice with the customer's purchasing system. Maximum length: 25 characters. example: PO-1234 type: string maxLength: 25 termsId: description: >- The invoice's payment terms, defining when payment is due and any applicable discounts. example: 80000001-1234567890 type: string maxLength: 36 dueDate: description: >- The date by which this invoice must be paid, in ISO 8601 format (YYYY-MM-DD). **NOTE**: If `dueDate` is excluded when creating this invoice, QuickBooks might determine the due date according to the terms set for this customer. example: '2024-10-31' type: string format: date salesRepresentativeId: description: >- The invoice's sales representative. Sales representatives can be employees, vendors, or other names in QuickBooks. example: 80000001-1234567890 type: string maxLength: 36 shipmentOrigin: description: >- The origin location from where the product associated with this invoice 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. example: San Francisco, CA type: string maxLength: 13 shippingDate: description: >- The date when the products or services for this invoice were shipped or are expected to be shipped, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-01' type: string format: date shippingMethodId: description: >- The shipping method used for this invoice, such as standard mail or overnight delivery. example: 80000001-1234567890 type: string maxLength: 36 salesTaxItemId: description: >- The sales-tax item used to calculate the actual tax amount for this invoice's transactions by applying a specific tax rate collected for a single tax agency. Unlike `salesTaxCode`, which only indicates general taxability, this field drives the actual tax calculation and reporting. For invoices, while using this field to specify a single tax item/group that applies uniformly is recommended, complex tax scenarios may require alternative approaches. In such cases, you can set this field to a 0% tax item (conventionally named "Tax Calculated On Invoice") and handle tax calculations through line items instead. When using line items for taxes, note that only individual tax items (not tax groups) can be used, subtotals can help apply a tax to multiple items but only the first tax line after a subtotal is calculated automatically (subsequent tax lines require manual amounts), and the rate column will always display the actual tax amount rather than the rate percentage. example: 80000001-1234567890 type: string maxLength: 36 memo: description: >- A memo or note for this invoice that appears in reports, but not on the invoice. Use `customerMessage` to add a note to this invoice. example: Customer requested rush delivery type: string customerMessageId: description: The message to display to the customer on the invoice. example: 80000001-1234567890 type: string maxLength: 36 isQueuedForPrint: type: boolean description: >- Indicates whether this invoice is included in the queue of documents for QuickBooks to print. example: true isQueuedForEmail: description: >- Indicates whether this invoice is included in the queue of documents for QuickBooks to email to the customer. example: true type: boolean salesTaxCodeId: description: >- The sales-tax code for this invoice, determining whether it is taxable or non-taxable. This can be overridden at the transaction-line level. 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. example: 80000001-1234567890 type: string maxLength: 36 otherCustomField: description: >- A built-in custom field for additional information specific to this invoice. Unlike the user-defined fields in the `customFields` array, this is a standard QuickBooks field that exists for all invoices for convenience. Developers often use this field for tracking information that doesn't fit into other standard QuickBooks fields. Unlike `otherCustomField1` and `otherCustomField2`, which are line item fields, this exists at the transaction level. Hidden by default in the QuickBooks UI. example: Special handling required type: string exchangeRate: description: >- The market exchange rate between this invoice'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: 1.2345 type: number externalId: type: string format: uuid description: >- 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. **IMPORTANT**: This field must be formatted as a valid GUID; otherwise, QuickBooks will return an error. example: 12345678-abcd-1234-abcd-1234567890ab linkToTransactionIds: description: >- IDs of existing transactions that you wish to link to this invoice, such as payments applied, credits used, or associated purchase orders. Note that this links entire transactions, not individual transaction lines. If you want to link individual lines in a transaction, instead use the field `linkToTransactionLine` on this invoice's lines, if available. Transactions can only be linked when creating this invoice and cannot be unlinked later. You can use both `linkToTransactionIds` (on this invoice) and `linkToTransactionLine` (on its transaction lines) as long as they do NOT link to the same transaction (otherwise, QuickBooks will return an error). QuickBooks will also return an error if you attempt to link a transaction that is empty or already closed. **IMPORTANT**: By default, QuickBooks will not return any information about the linked transactions in this endpoint's response even when this request is successful. To see the transactions linked via this field, refetch the invoice and check the `linkedTransactions` response field. If fetching a list of invoices, you must also specify the parameter `includeLinkedTransactions=true` to see the `linkedTransactions` response field. minItems: 1 type: array items: type: string maxLength: 36 applyCredits: description: >- Credits to apply to this invoice, reducing its balance. This creates a link between this invoice and the specified credit transactions. **IMPORTANT**: By default, QuickBooks will not return any information about the linked transactions in this endpoint's response even when this request is successful. To see the transactions linked via this field, refetch the invoice and check the `linkedTransactions` response field. If fetching a list of invoices, you must also specify the parameter `includeLinkedTransactions=true` to see the `linkedTransactions` response field. minItems: 1 type: array items: type: object properties: creditTransactionId: type: string maxLength: 36 description: >- The unique identifier of the credit transaction to apply to this transaction, such as a credit memo, vendor credit, or journal-entry credit. example: ABCDEF-1234567890 appliedAmount: type: string description: >- The amount of the selected credit transaction to apply to this transaction, represented as a decimal string. Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45"). example: '100.00' overrideCreditApplication: description: Indicates whether to override the credit. example: false default: false type: boolean required: - creditTransactionId - appliedAmount additionalProperties: false lines: description: >- The invoice's line items, each representing a single product or service sold. minItems: 1 type: array items: type: object properties: itemId: description: >- The item associated with this invoice 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. example: 80000001-1234567890 type: string maxLength: 36 description: description: A description of this invoice line. example: High-quality widget with custom engraving type: string quantity: description: >- The quantity of the item associated with this invoice line. This field cannot be cleared. **NOTE**: Do not use this field if the associated item is a discount item. example: 5 type: number unitOfMeasure: description: >- The unit-of-measure used for the `quantity` in this invoice line. Must be a valid unit within the item's available units of measure. example: Each type: string rate: description: >- The price per unit for this invoice 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. Decimal string format: up to 5 decimal places and up to 10 digits before the decimal point (for example, "123.45"). example: '10.00' type: string ratePercent: description: >- The price of this invoice line expressed as a percentage. Typically used for discount or markup items. example: '10.5' type: string priceLevelId: description: >- The price level applied to this invoice line. This overrides any price level set on the corresponding customer. The resulting invoice line will not show this price level, only the final `rate` calculated from it. example: 80000001-1234567890 type: string maxLength: 36 classId: description: >- The invoice 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 invoice lines unless overridden here, at the transaction line level. example: 80000001-1234567890 type: string maxLength: 36 amount: description: >- The monetary amount of this invoice 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. Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45"). example: '1000.00' type: string priceRuleConflictStrategy: description: >- Specifies how to resolve price rule conflicts when adding or modifying this invoice line. example: base_price type: string enum: - base_price - zero inventorySiteId: description: >- The site location where inventory for the item associated with this invoice line is stored. example: 80000001-1234567890 type: string maxLength: 36 inventorySiteLocationId: description: >- The specific location (e.g., bin or shelf) within the inventory site where the item associated with this invoice line is stored. example: 80000001-1234567890 type: string maxLength: 36 serialNumber: description: >- The serial number of the item associated with this invoice line. This is used for tracking individual units of serialized inventory items. example: SN1234567890 type: string lotNumber: description: >- The lot number of the item associated with this invoice line. Used for tracking groups of inventory items that are purchased or manufactured together. example: LOT2023-001 type: string serviceDate: description: >- The date on which the service for this invoice line was or will be performed, in ISO 8601 format (YYYY-MM-DD). This is particularly relevant for service items. example: '2024-03-15' type: string format: date salesTaxCodeId: description: >- The sales-tax code for this invoice 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. example: 80000001-1234567890 type: string maxLength: 36 overrideItemAccountId: description: >- The account to use for this invoice line, overriding the default account associated with the item. example: 80000001-1234567890 type: string maxLength: 36 otherCustomField1: description: >- A built-in custom field for additional information specific to this invoice line. Unlike the user-defined fields in the `customFields` array, this is a standard QuickBooks field that exists for all invoice 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. example: Special handling required type: string otherCustomField2: description: >- A second built-in custom field for additional information specific to this invoice line. Unlike the user-defined fields in the `customFields` array, this is a standard QuickBooks field that exists for all invoice 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. example: Always ship with a spare type: string linkToTransactionLine: description: >- An existing transaction line that you wish to link to this invoice line. Note that this only links to a single transaction line item, not an entire transaction. If you want to link an entire transaction and bring in all its lines, instead use the field `linkToTransactionIds` on the parent transaction, if available. For invoice lines, you can only link to sales orders; QuickBooks does not support linking invoice lines to other transaction types. Transaction lines can only be linked when creating this invoice line and cannot be unlinked later. **IMPORTANT**: If you use `linkToTransactionLine` on this invoice line, you cannot use the field `item` on this line (QuickBooks will return an error) because this field brings in all of the item information you need. You can, however, specify whatever `quantity` or `rate` that you want, or any other transaction line element other than `item`. If the parent transaction supports the `linkToTransactionIds` field, you can use both `linkToTransactionLine` (on this invoice line) and `linkToTransactionIds` (on its parent transaction) in the same request as long as they do NOT link to the same transaction (otherwise, QuickBooks will return an error). QuickBooks will also return an error if you attempt to link a transaction that is empty or already closed. **IMPORTANT**: By default, QuickBooks will not return any information about the linked transaction line in this endpoint's response even when this request is successful. To see the transaction line linked via this field, refetch the parent invoice and check the `linkedTransactions` response field. If fetching a list of invoices, you must also specify the parameter `includeLinkedTransactions=true` to see the `linkedTransactions` response field. type: object properties: transactionId: type: string maxLength: 36 description: >- The ID of the transaction to which to link this transaction. example: 123ABC-1234567890 transactionLineId: type: string maxLength: 36 description: >- The ID of the transaction line to which to link this transaction. example: 456DEF-1234567890 required: - transactionId - transactionLineId additionalProperties: false customFields: description: >- The custom fields for the invoice line object, added as user-defined data extensions, not included in the standard QuickBooks object. minItems: 1 type: array items: type: object properties: ownerId: type: string description: >- 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. example: '0' name: type: string description: >- 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. example: Customer Rating value: type: string description: >- The value of this custom field. The maximum length depends on the field's data type. example: Premium required: - ownerId - name - value additionalProperties: false additionalProperties: false lineGroups: description: >- The invoice's line item groups, each representing a predefined set of related items. minItems: 1 type: array items: type: object properties: itemGroupId: description: >- The invoice line group's item group, representing a predefined set of items bundled because they are commonly purchased together or grouped for faster entry. example: 80000001-1234567890 type: string maxLength: 36 quantity: description: >- The quantity of the item group associated with this invoice line group. This field cannot be cleared. **NOTE**: Do not use this field if the associated item group is a discount item group. example: 5 type: number unitOfMeasure: description: >- The unit-of-measure used for the `quantity` in this invoice line group. Must be a valid unit within the item's available units of measure. example: Each type: string serviceDate: description: >- The date on which the service for this invoice line group was or will be performed, in ISO 8601 format (YYYY-MM-DD). This is particularly relevant for service items. example: '2024-03-15' type: string format: date inventorySiteId: description: >- The site location where inventory for the item group associated with this invoice line group is stored. example: 80000001-1234567890 type: string maxLength: 36 inventorySiteLocationId: description: >- The specific location (e.g., bin or shelf) within the inventory site where the item group associated with this invoice line group is stored. example: 80000001-1234567890 type: string maxLength: 36 customFields: description: >- The custom fields for the invoice line group object, added as user-defined data extensions, not included in the standard QuickBooks object. minItems: 1 type: array items: type: object properties: ownerId: type: string description: >- 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. example: '0' name: type: string description: >- 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. example: Customer Rating value: type: string description: >- The value of this custom field. The maximum length depends on the field's data type. example: Premium required: - ownerId - name - value additionalProperties: false required: - itemGroupId additionalProperties: false required: - customerId - transactionDate additionalProperties: false responses: '200': description: Returns the newly created invoice. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_invoice' x-codeSamples: - lang: JavaScript source: |- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const invoice = await conductor.qbd.invoices.create({ customerId: '80000001-1234567890', transactionDate: '2024-10-01', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(invoice.id); - lang: Python source: |- import os from datetime import date from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) invoice = conductor.qbd.invoices.create( customer_id="80000001-1234567890", transaction_date=date.fromisoformat("2024-10-01"), conductor_end_user_id="end_usr_1234567abcdefg", ) print(invoice.id) /quickbooks-desktop/invoices/{id}: get: summary: Retrieve an invoice description: >- Retrieves an invoice by ID. **IMPORTANT:** If you need to fetch multiple specific invoices 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. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the invoice to retrieve. example: 123ABC-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the invoice to retrieve. responses: '200': description: Returns the specified invoice. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_invoice' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const invoice = await conductor.qbd.invoices.retrieve('123ABC-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(invoice.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) invoice = conductor.qbd.invoices.retrieve( id="123ABC-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(invoice.id) post: summary: Update an invoice description: >- Updates an existing invoice. **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. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the invoice to update. example: 123ABC-1234567890 required: true description: The QuickBooks-assigned unique identifier of the invoice to update. requestBody: required: true content: application/json: schema: type: object properties: revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of the invoice 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. example: '1721172183' customerId: description: The customer or customer-job associated with this invoice. example: 80000001-1234567890 type: string maxLength: 36 classId: description: >- The invoice'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 invoice's line items unless overridden at the line item level. example: 80000001-1234567890 type: string maxLength: 36 receivablesAccountId: description: >- The Accounts-Receivable (A/R) account to which this invoice is assigned, used to track the amount owed. If omitted, QuickBooks Desktop uses the default A/R account configured in the company file. **IMPORTANT**: If this invoice is linked to other transactions, this A/R account must match the `receivablesAccount` used in all linked transactions. example: 80000001-1234567890 type: string maxLength: 36 documentTemplateId: description: >- The predefined template in QuickBooks that determines the layout and formatting for this invoice when printed or displayed. example: 80000001-1234567890 type: string maxLength: 36 transactionDate: description: The date of this invoice, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-01' type: string format: date refNumber: description: >- The case-sensitive user-defined reference number for this invoice, 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. example: INV-1234 type: string maxLength: 11 billingAddress: description: The invoice's billing address. type: object properties: line1: description: >- The first line of the address (e.g., street, PO Box, or company name). Maximum length: 41 characters. example: Conductor Labs Inc. type: string maxLength: 41 line2: description: >- The second line of the address, if needed (e.g., apartment, suite, unit, or building). Maximum length: 41 characters. example: 540 Market St. type: string maxLength: 41 line3: description: |- The third line of the address, if needed. Maximum length: 41 characters. example: Suite 100 type: string maxLength: 41 line4: description: |- The fourth line of the address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 line5: description: |- The fifth line of the address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 city: description: >- The city, district, suburb, town, or village name of the address. Maximum length: 31 characters. example: San Francisco type: string maxLength: 31 state: description: >- The state, county, province, or region name of the address. Maximum length: 21 characters. example: CA type: string maxLength: 21 postalCode: description: |- The postal code or ZIP code of the address. Maximum length: 13 characters. example: '94110' type: string maxLength: 13 country: description: The country name of the address. example: United States type: string note: description: >- A note written at the bottom of the address in the form in which it appears, such as the invoice form. example: Conductor HQ type: string additionalProperties: false shippingAddress: description: The invoice's shipping address. type: object properties: line1: description: >- The first line of the address (e.g., street, PO Box, or company name). Maximum length: 41 characters. example: Conductor Labs Inc. type: string maxLength: 41 line2: description: >- The second line of the address, if needed (e.g., apartment, suite, unit, or building). Maximum length: 41 characters. example: 540 Market St. type: string maxLength: 41 line3: description: |- The third line of the address, if needed. Maximum length: 41 characters. example: Suite 100 type: string maxLength: 41 line4: description: |- The fourth line of the address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 line5: description: |- The fifth line of the address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 city: description: >- The city, district, suburb, town, or village name of the address. Maximum length: 31 characters. example: San Francisco type: string maxLength: 31 state: description: >- The state, county, province, or region name of the address. Maximum length: 21 characters. example: CA type: string maxLength: 21 postalCode: description: |- The postal code or ZIP code of the address. Maximum length: 13 characters. example: '94110' type: string maxLength: 13 country: description: The country name of the address. example: United States type: string note: description: >- A note written at the bottom of the address in the form in which it appears, such as the invoice form. example: Conductor HQ type: string additionalProperties: false isPending: description: >- Indicates whether this invoice has not been completed or is in a draft version. example: false type: boolean purchaseOrderNumber: description: >- The customer's Purchase Order (PO) number associated with this invoice. This field is often used to cross-reference the invoice with the customer's purchasing system. Maximum length: 25 characters. example: PO-1234 type: string maxLength: 25 termsId: description: >- The invoice's payment terms, defining when payment is due and any applicable discounts. example: 80000001-1234567890 type: string maxLength: 36 dueDate: description: >- The date by which this invoice must be paid, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-31' type: string format: date salesRepresentativeId: description: >- The invoice's sales representative. Sales representatives can be employees, vendors, or other names in QuickBooks. example: 80000001-1234567890 type: string maxLength: 36 shipmentOrigin: description: >- The origin location from where the product associated with this invoice 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. example: San Francisco, CA type: string maxLength: 13 shippingDate: description: >- The date when the products or services for this invoice were shipped or are expected to be shipped, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-01' type: string format: date shippingMethodId: description: >- The shipping method used for this invoice, such as standard mail or overnight delivery. example: 80000001-1234567890 type: string maxLength: 36 salesTaxItemId: description: >- The sales-tax item used to calculate the actual tax amount for this invoice's transactions by applying a specific tax rate collected for a single tax agency. Unlike `salesTaxCode`, which only indicates general taxability, this field drives the actual tax calculation and reporting. For invoices, while using this field to specify a single tax item/group that applies uniformly is recommended, complex tax scenarios may require alternative approaches. In such cases, you can set this field to a 0% tax item (conventionally named "Tax Calculated On Invoice") and handle tax calculations through line items instead. When using line items for taxes, note that only individual tax items (not tax groups) can be used, subtotals can help apply a tax to multiple items but only the first tax line after a subtotal is calculated automatically (subsequent tax lines require manual amounts), and the rate column will always display the actual tax amount rather than the rate percentage. example: 80000001-1234567890 type: string maxLength: 36 memo: description: >- A memo or note for this invoice that appears in reports, but not on the invoice. Use `customerMessage` to add a note to this invoice. example: Customer requested rush delivery type: string customerMessageId: description: The message to display to the customer on the invoice. example: 80000001-1234567890 type: string maxLength: 36 isQueuedForPrint: type: boolean description: >- Indicates whether this invoice is included in the queue of documents for QuickBooks to print. example: true isQueuedForEmail: description: >- Indicates whether this invoice is included in the queue of documents for QuickBooks to email to the customer. example: true type: boolean salesTaxCodeId: description: >- The sales-tax code for this invoice, determining whether it is taxable or non-taxable. This can be overridden at the transaction-line level. 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. example: 80000001-1234567890 type: string maxLength: 36 otherCustomField: description: >- A built-in custom field for additional information specific to this invoice. Unlike the user-defined fields in the `customFields` array, this is a standard QuickBooks field that exists for all invoices for convenience. Developers often use this field for tracking information that doesn't fit into other standard QuickBooks fields. Unlike `otherCustomField1` and `otherCustomField2`, which are line item fields, this exists at the transaction level. Hidden by default in the QuickBooks UI. example: Special handling required type: string exchangeRate: description: >- The market exchange rate between this invoice'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: 1.2345 type: number applyCredits: description: >- Credits to apply to this invoice, reducing its balance. This creates a link between this invoice and the specified credit transactions. For credit-only applications with no received payment amount, update the invoice using this field. **IMPORTANT**: By default, QuickBooks will not return any information about the linked transactions in this endpoint's response even when this request is successful. To see the transactions linked via this field, refetch the invoice and check the `linkedTransactions` response field. If fetching a list of invoices, you must also specify the parameter `includeLinkedTransactions=true` to see the `linkedTransactions` response field. minItems: 1 type: array items: type: object properties: creditTransactionId: type: string maxLength: 36 description: >- The unique identifier of the credit transaction to apply to this transaction, such as a credit memo, vendor credit, or journal-entry credit. example: ABCDEF-1234567890 appliedAmount: type: string description: >- The amount of the selected credit transaction to apply to this transaction, represented as a decimal string. Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45"). example: '100.00' overrideCreditApplication: description: Indicates whether to override the credit. example: false default: false type: boolean required: - creditTransactionId - appliedAmount additionalProperties: false lines: description: >- The invoice's line items, each representing a single product or service sold. **IMPORTANT**: 1. Including this array in your update request will **REPLACE** all existing line items for the invoice with this array. To keep any existing line items, you must include them in this array even if they have not changed. **Any line items not included will be removed.** 2. To add a new line item, include it here with the `id` field set to `-1`. 3. If you do not wish to modify any line items, omit this field entirely to keep them unchanged. minItems: 1 type: array items: type: object properties: id: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of an existing invoice line you wish to retain or update. **IMPORTANT**: Set this field to `-1` for new invoice lines you wish to add. example: 456DEF-1234567890 itemId: description: >- The item associated with this invoice 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. example: 80000001-1234567890 type: string maxLength: 36 description: description: A description of this invoice line. example: High-quality widget with custom engraving type: string quantity: description: >- The quantity of the item associated with this invoice line. This field cannot be cleared. **NOTE**: Do not use this field if the associated item is a discount item. example: 5 type: number unitOfMeasure: description: >- The unit-of-measure used for the `quantity` in this invoice line. Must be a valid unit within the item's available units of measure. example: Each type: string overrideUnitOfMeasureSetId: description: >- Specifies an alternative unit-of-measure set when updating this invoice 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. example: 80000001-1234567890 type: string maxLength: 36 rate: description: >- The price per unit for this invoice 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. Decimal string format: up to 5 decimal places and up to 10 digits before the decimal point (for example, "123.45"). example: '10.00' type: string ratePercent: description: >- The price of this invoice line expressed as a percentage. Typically used for discount or markup items. example: '10.5' type: string priceLevelId: description: >- The price level applied to this invoice line. This overrides any price level set on the corresponding customer. The resulting invoice line will not show this price level, only the final `rate` calculated from it. example: 80000001-1234567890 type: string maxLength: 36 classId: description: >- The invoice 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 invoice lines unless overridden here, at the transaction line level. example: 80000001-1234567890 type: string maxLength: 36 amount: description: >- The monetary amount of this invoice 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. Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45"). example: '1000.00' type: string priceRuleConflictStrategy: description: >- Specifies how to resolve price rule conflicts when adding or modifying this invoice line. example: base_price type: string enum: - base_price - zero inventorySiteId: description: >- The site location where inventory for the item associated with this invoice line is stored. example: 80000001-1234567890 type: string maxLength: 36 inventorySiteLocationId: description: >- The specific location (e.g., bin or shelf) within the inventory site where the item associated with this invoice line is stored. example: 80000001-1234567890 type: string maxLength: 36 serialNumber: description: >- The serial number of the item associated with this invoice line. This is used for tracking individual units of serialized inventory items. example: SN1234567890 type: string lotNumber: description: >- The lot number of the item associated with this invoice line. Used for tracking groups of inventory items that are purchased or manufactured together. example: LOT2023-001 type: string serviceDate: description: >- The date on which the service for this invoice line was or will be performed, in ISO 8601 format (YYYY-MM-DD). This is particularly relevant for service items. example: '2024-03-15' type: string format: date salesTaxCodeId: description: >- The sales-tax code for this invoice 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. example: 80000001-1234567890 type: string maxLength: 36 overrideItemAccountId: description: >- The account to use for this invoice line, overriding the default account associated with the item. example: 80000001-1234567890 type: string maxLength: 36 otherCustomField1: description: >- A built-in custom field for additional information specific to this invoice line. Unlike the user-defined fields in the `customFields` array, this is a standard QuickBooks field that exists for all invoice 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. example: Special handling required type: string otherCustomField2: description: >- A second built-in custom field for additional information specific to this invoice line. Unlike the user-defined fields in the `customFields` array, this is a standard QuickBooks field that exists for all invoice 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. example: Always ship with a spare type: string required: - id additionalProperties: false lineGroups: description: >- The invoice's line item groups, each representing a predefined set of related items. **IMPORTANT**: 1. Including this array in your update request will **REPLACE** all existing line item groups for the invoice with this array. To keep any existing line item groups, you must include them in this array even if they have not changed. **Any line item groups not included will be removed.** 2. To add a new line item group, include it here with the `id` field set to `-1`. 3. If you do not wish to modify any line item groups, omit this field entirely to keep them unchanged. minItems: 1 type: array items: type: object properties: id: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of an existing invoice line group you wish to retain or update. **IMPORTANT**: Set this field to `-1` for new invoice line groups you wish to add. example: 456DEF-1234567890 itemGroupId: description: >- The invoice line group's item group, representing a predefined set of items bundled because they are commonly purchased together or grouped for faster entry. example: 80000001-1234567890 type: string maxLength: 36 quantity: description: >- The quantity of the item group associated with this invoice line group. This field cannot be cleared. **NOTE**: Do not use this field if the associated item group is a discount item group. example: 5 type: number unitOfMeasure: description: >- The unit-of-measure used for the `quantity` in this invoice line group. Must be a valid unit within the item's available units of measure. example: Each type: string overrideUnitOfMeasureSetId: description: >- Specifies an alternative unit-of-measure set when updating this invoice 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. example: 80000001-1234567890 type: string maxLength: 36 lines: description: >- The invoice line group's line items, each representing a single product or service sold. **IMPORTANT**: 1. Including this array in your update request will **REPLACE** all existing line items for the invoice line group with this array. To keep any existing line items, you must include them in this array even if they have not changed. **Any line items not included will be removed.** 2. To add a new line item, include it here with the `id` field set to `-1`. 3. If you do not wish to modify any line items, omit this field entirely to keep them unchanged. minItems: 1 type: array items: type: object properties: id: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of an existing invoice line you wish to retain or update. **IMPORTANT**: Set this field to `-1` for new invoice lines you wish to add. example: 456DEF-1234567890 itemId: description: >- The item associated with this invoice 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. example: 80000001-1234567890 type: string maxLength: 36 description: description: A description of this invoice line. example: High-quality widget with custom engraving type: string quantity: description: >- The quantity of the item associated with this invoice line. This field cannot be cleared. **NOTE**: Do not use this field if the associated item is a discount item. example: 5 type: number unitOfMeasure: description: >- The unit-of-measure used for the `quantity` in this invoice line. Must be a valid unit within the item's available units of measure. example: Each type: string overrideUnitOfMeasureSetId: description: >- Specifies an alternative unit-of-measure set when updating this invoice 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. example: 80000001-1234567890 type: string maxLength: 36 rate: description: >- The price per unit for this invoice 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. Decimal string format: up to 5 decimal places and up to 10 digits before the decimal point (for example, "123.45"). example: '10.00' type: string ratePercent: description: >- The price of this invoice line expressed as a percentage. Typically used for discount or markup items. example: '10.5' type: string priceLevelId: description: >- The price level applied to this invoice line. This overrides any price level set on the corresponding customer. The resulting invoice line will not show this price level, only the final `rate` calculated from it. example: 80000001-1234567890 type: string maxLength: 36 classId: description: >- The invoice 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 invoice lines unless overridden here, at the transaction line level. example: 80000001-1234567890 type: string maxLength: 36 amount: description: >- The monetary amount of this invoice 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. Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45"). example: '1000.00' type: string priceRuleConflictStrategy: description: >- Specifies how to resolve price rule conflicts when adding or modifying this invoice line. example: base_price type: string enum: - base_price - zero inventorySiteId: description: >- The site location where inventory for the item associated with this invoice line is stored. example: 80000001-1234567890 type: string maxLength: 36 inventorySiteLocationId: description: >- The specific location (e.g., bin or shelf) within the inventory site where the item associated with this invoice line is stored. example: 80000001-1234567890 type: string maxLength: 36 serialNumber: description: >- The serial number of the item associated with this invoice line. This is used for tracking individual units of serialized inventory items. example: SN1234567890 type: string lotNumber: description: >- The lot number of the item associated with this invoice line. Used for tracking groups of inventory items that are purchased or manufactured together. example: LOT2023-001 type: string serviceDate: description: >- The date on which the service for this invoice line was or will be performed, in ISO 8601 format (YYYY-MM-DD). This is particularly relevant for service items. example: '2024-03-15' type: string format: date salesTaxCodeId: description: >- The sales-tax code for this invoice 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. example: 80000001-1234567890 type: string maxLength: 36 overrideItemAccountId: description: >- The account to use for this invoice line, overriding the default account associated with the item. example: 80000001-1234567890 type: string maxLength: 36 otherCustomField1: description: >- A built-in custom field for additional information specific to this invoice line. Unlike the user-defined fields in the `customFields` array, this is a standard QuickBooks field that exists for all invoice 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. example: Special handling required type: string otherCustomField2: description: >- A second built-in custom field for additional information specific to this invoice line. Unlike the user-defined fields in the `customFields` array, this is a standard QuickBooks field that exists for all invoice 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. example: Always ship with a spare type: string required: - id additionalProperties: false required: - id additionalProperties: false required: - revisionNumber additionalProperties: false responses: '200': description: Returns the updated invoice. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_invoice' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const invoice = await conductor.qbd.invoices.update('123ABC-1234567890', { revisionNumber: '1721172183', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(invoice.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) invoice = conductor.qbd.invoices.update( id="123ABC-1234567890", revision_number="1721172183", conductor_end_user_id="end_usr_1234567abcdefg", ) print(invoice.id) delete: summary: Delete an invoice description: >- Permanently deletes an invoice. The deletion will fail if the invoice is currently in use or has any linked transactions that are in use. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the invoice to delete. example: 123ABC-1234567890 required: true description: The QuickBooks-assigned unique identifier of the invoice to delete. responses: '200': description: >- Returns a confirmation of the deletion with the ID of the deleted invoice. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: id: type: string description: >- The QuickBooks-assigned unique identifier of the deleted invoice. example: 123ABC-1234567890 objectType: description: The type of object. This value is always `"qbd_invoice"`. example: qbd_invoice type: string const: qbd_invoice refNumber: anyOf: - type: string - type: 'null' description: >- The case-sensitive user-defined reference number of the deleted invoice. example: INV-1234 deleted: type: boolean description: Indicates whether the invoice was deleted. example: true required: - id - objectType - refNumber - deleted additionalProperties: false x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const invoice = await conductor.qbd.invoices.delete('123ABC-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(invoice.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) invoice = conductor.qbd.invoices.delete( id="123ABC-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(invoice.id) /quickbooks-desktop/invoices/{id}/void: post: summary: Void an invoice description: >- Voids an invoice by setting its amount to zero while keeping a record of it in QuickBooks. The void will fail if the invoice is currently in use or has any linked transactions that are in use. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: The QuickBooks-assigned unique identifier of the invoice to void. example: 123ABC-1234567890 required: true description: The QuickBooks-assigned unique identifier of the invoice to void. responses: '200': description: >- Returns a confirmation of the void with the ID of the voided invoice. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: id: type: string description: >- The QuickBooks-assigned unique identifier of the voided invoice. example: 123ABC-1234567890 objectType: description: The type of object. This value is always `"qbd_invoice"`. example: qbd_invoice type: string const: qbd_invoice createdAt: anyOf: - type: string - type: 'null' description: >- The date and time when this invoice 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. example: 2025-01-01T12:34:56.000Z updatedAt: anyOf: - type: string - type: 'null' description: >- The date and time when this invoice 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. example: 2025-02-01T12:34:56.000Z refNumber: anyOf: - type: string - type: 'null' description: >- The case-sensitive user-defined reference number of the voided invoice. example: INV-1234 voided: type: boolean description: Indicates whether the invoice was voided. example: true required: - id - objectType - createdAt - updatedAt - refNumber - voided additionalProperties: false x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const response = await conductor.qbd.invoices.void('123ABC-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(response.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) response = conductor.qbd.invoices.void( id="123ABC-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(response.id) /quickbooks-desktop/item-groups: get: summary: List all item groups description: >- Returns a list of item groups. Use the `cursor` parameter to paginate through the results. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: query name: ids schema: description: >- Filter for specific item groups 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: - 80000001-1234567890 type: array items: type: string description: >- Filter for specific item groups 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. - in: query name: names schema: description: >- Filter for specific item groups by their name(s), case-insensitive. Like `id`, `name` is a unique identifier for an item group. **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: - Office Supplies Bundle type: array items: type: string description: >- Filter for specific item groups by their name(s), case-insensitive. Like `id`, `name` is a unique identifier for an item group. **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. - in: query name: limit schema: default: 150 description: >- 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. example: 150 type: integer minimum: 1 maximum: 150 description: >- 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. - in: query name: cursor schema: description: >- 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 type: string description: >- 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. - in: query name: status schema: description: Filter for item groups that are active, inactive, or both. example: active type: string enum: - active - all - inactive default: active description: Filter for item groups that are active, inactive, or both. - in: query name: updatedAfter schema: description: >- Filter for item groups 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. example: 2025-01-01T12:34:56.000Z type: string description: >- Filter for item groups 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. - in: query name: updatedBefore schema: description: >- Filter for item groups 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. example: 2025-02-01T12:34:56.000Z type: string description: >- Filter for item groups 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. - in: query name: nameContains schema: description: >- Filter for item groups whose `name` contains this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameStartsWith` or `nameEndsWith`. example: ABC type: string description: >- Filter for item groups whose `name` contains this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameStartsWith` or `nameEndsWith`. - in: query name: nameStartsWith schema: description: >- Filter for item groups whose `name` starts with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameEndsWith`. example: ABC type: string description: >- Filter for item groups whose `name` starts with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameEndsWith`. - in: query name: nameEndsWith schema: description: >- Filter for item groups whose `name` ends with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameStartsWith`. example: ABC type: string description: >- Filter for item groups whose `name` ends with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameStartsWith`. - in: query name: nameFrom schema: description: >- Filter for item groups whose `name` is alphabetically greater than or equal to this value. example: A type: string description: >- Filter for item groups whose `name` is alphabetically greater than or equal to this value. - in: query name: nameTo schema: description: >- Filter for item groups whose `name` is alphabetically less than or equal to this value. example: Z type: string description: >- Filter for item groups whose `name` is alphabetically less than or equal to this value. responses: '200': description: Returns a list of item groups. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: objectType: description: The type of object. This value is always `"list"`. example: list type: string const: list url: type: string description: The endpoint URL where this list can be accessed. example: /v1/quickbooks-desktop/item-groups data: type: array items: $ref: '#/components/schemas/qbd_item_group' description: The array of item groups. nextCursor: anyOf: - type: string - type: 'null' description: >- The `nextCursor` is a pagination token returned in the response when you use the `limit` parameter in your request. To retrieve subsequent pages of results, include this token as the value of the `cursor` request parameter in your following API calls. **NOTE**: The `nextCursor` value remains constant throughout the pagination process for a specific list instance; continue to use the same `nextCursor` token in each request to fetch additional pages. example: 12345678-abcd-abcd-example-1234567890ab remainingCount: anyOf: - type: number - type: 'null' description: The number of objects remaining to be fetched. example: 10 hasMore: type: boolean description: Indicates whether there are more objects to be fetched. required: - objectType - url - data - nextCursor - remainingCount - hasMore additionalProperties: false x-codeSamples: - lang: JavaScript source: |- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); // Automatically fetches more pages as needed. for await (const itemGroup of conductor.qbd.itemGroups.list({ conductorEndUserId: 'end_usr_1234567abcdefg', })) { console.log(itemGroup.id); } - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) page = conductor.qbd.item_groups.list( conductor_end_user_id="end_usr_1234567abcdefg", ) page = page.data[0] print(page.id) post: summary: Create an item group description: Creates a new item group. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. requestBody: required: true content: application/json: schema: type: object properties: name: type: string maxLength: 31 description: >- The case-insensitive unique name of this item group, unique across all item groups. **NOTE**: Item groups do not have a `fullName` field because they are not hierarchical objects, which is why `name` is unique for them but not for objects that have parents. Maximum length: 31 characters. example: Office Supplies Bundle barcode: description: The item group's barcode. type: object properties: value: description: The item's barcode value. example: '012345678905' type: string assignEvenIfUsed: description: >- Indicates whether to assign the barcode even if it is already used. example: false default: false type: boolean allowOverride: description: Indicates whether to allow the barcode to be overridden. example: false default: false type: boolean additionalProperties: false isActive: description: >- Indicates whether this item group is active. Inactive objects are typically hidden from views and reports in QuickBooks. Defaults to `true`. example: true default: true type: boolean description: description: >- The item group's description that will appear on sales forms that include this item. example: >- Complete office starter kit with essential supplies for new employees. type: string unitOfMeasureSetId: description: >- The unit-of-measure set associated with this item group, which consists of a base unit and related units. example: 80000001-1234567890 type: string maxLength: 36 shouldPrintItemsInGroup: type: boolean description: >- Indicates whether the individual items in this item group and their separate amounts appear on printed forms. example: true externalId: type: string format: uuid description: >- 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. **IMPORTANT**: This field must be formatted as a valid GUID; otherwise, QuickBooks will return an error. example: 12345678-abcd-1234-abcd-1234567890ab lines: description: The item lines in this item group. minItems: 1 type: array items: type: object properties: itemId: description: >- The item associated with this item group 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. example: 80000001-1234567890 type: string maxLength: 36 quantity: description: >- The quantity of the item group associated with this item group line. This field cannot be cleared. **NOTE**: Do not use this field if the associated item group is a discount item group. example: 5 type: number unitOfMeasure: description: >- The unit-of-measure used for the `quantity` in this item group line. Must be a valid unit within the item's available units of measure. example: Each type: string additionalProperties: false required: - name - shouldPrintItemsInGroup additionalProperties: false responses: '200': description: Returns the newly created item group. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_item_group' x-codeSamples: - lang: JavaScript source: |- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const itemGroup = await conductor.qbd.itemGroups.create({ name: 'Office Supplies Bundle', shouldPrintItemsInGroup: true, conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(itemGroup.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) item_group = conductor.qbd.item_groups.create( name="Office Supplies Bundle", should_print_items_in_group=True, conductor_end_user_id="end_usr_1234567abcdefg", ) print(item_group.id) /quickbooks-desktop/item-groups/{id}: get: summary: Retrieve an item group description: >- Retrieves an item group by ID. **IMPORTANT:** If you need to fetch multiple specific item groups 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. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the item group to retrieve. example: 80000001-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the item group to retrieve. responses: '200': description: Returns the specified item group. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_item_group' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const itemGroup = await conductor.qbd.itemGroups.retrieve('80000001-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(itemGroup.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) item_group = conductor.qbd.item_groups.retrieve( id="80000001-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(item_group.id) post: summary: Update an item group description: Updates an existing item group. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the item group to update. example: 80000001-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the item group to update. requestBody: required: true content: application/json: schema: type: object properties: revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of the item group 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. example: '1721172183' name: description: >- The case-insensitive unique name of this item group, unique across all item groups. **NOTE**: Item groups do not have a `fullName` field because they are not hierarchical objects, which is why `name` is unique for them but not for objects that have parents. Maximum length: 31 characters. example: Office Supplies Bundle type: string maxLength: 31 barcode: description: The item group's barcode. type: object properties: value: description: The item's barcode value. example: '012345678905' type: string assignEvenIfUsed: description: >- Indicates whether to assign the barcode even if it is already used. example: false default: false type: boolean allowOverride: description: Indicates whether to allow the barcode to be overridden. example: false default: false type: boolean additionalProperties: false isActive: description: >- Indicates whether this item group is active. Inactive objects are typically hidden from views and reports in QuickBooks. Defaults to `true`. example: true type: boolean description: description: >- The item group's description that will appear on sales forms that include this item. example: >- Complete office starter kit with essential supplies for new employees. type: string unitOfMeasureSetId: description: >- The unit-of-measure set associated with this item group, which consists of a base unit and related units. example: 80000001-1234567890 type: string maxLength: 36 forceUnitOfMeasureChange: description: >- Indicates whether to allow changing the item group's unit-of-measure set (using the `unitOfMeasureSetId` field) when the base unit of the new unit-of-measure set does not match that of the currently assigned set. Without setting this field to `true` in this scenario, the request will fail with an error; hence, this field is equivalent to accepting the warning prompt in the QuickBooks UI. NOTE: Changing the base unit requires you to update the item's quantities-on-hand and cost to reflect the new unit; otherwise, these values will be inaccurate. Alternatively, consider creating a new item with the desired unit-of-measure set and deactivating the old item. example: false type: boolean shouldPrintItemsInGroup: description: >- Indicates whether the individual items in this item group and their separate amounts appear on printed forms. example: true type: boolean clearItemLines: description: >- When `true`, removes all existing item lines associated with this item group. To modify or add individual item lines, use the field `itemLines` instead. example: false type: boolean lines: description: The item lines in this item group. minItems: 1 type: array items: type: object properties: itemId: description: >- The item associated with this item group 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. example: 80000001-1234567890 type: string maxLength: 36 quantity: description: >- The quantity of the item group associated with this item group line. This field cannot be cleared. **NOTE**: Do not use this field if the associated item group is a discount item group. example: 5 type: number unitOfMeasure: description: >- The unit-of-measure used for the `quantity` in this item group line. Must be a valid unit within the item's available units of measure. example: Each type: string additionalProperties: false required: - revisionNumber additionalProperties: false responses: '200': description: Returns the updated item group. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_item_group' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const itemGroup = await conductor.qbd.itemGroups.update('80000001-1234567890', { revisionNumber: '1721172183', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(itemGroup.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) item_group = conductor.qbd.item_groups.update( id="80000001-1234567890", revision_number="1721172183", conductor_end_user_id="end_usr_1234567abcdefg", ) print(item_group.id) /quickbooks-desktop/item-receipts: get: summary: List all item receipts description: >- Returns a list of item receipts. Use the `cursor` parameter to paginate through the results. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: query name: ids schema: description: >- Filter for specific item receipts 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 type: array items: type: string description: >- Filter for specific item receipts 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. - in: query name: refNumbers schema: description: >- Filter for specific item receipts 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: - ITEM RECEIPT-1234 type: array items: type: string description: >- Filter for specific item receipts 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. - in: query name: limit schema: default: 150 description: >- 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. example: 150 type: integer minimum: 1 maximum: 150 description: >- 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. - in: query name: cursor schema: description: >- 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 type: string description: >- 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. - in: query name: updatedAfter schema: description: >- Filter for item receipts 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. example: 2025-01-01T12:34:56.000Z type: string description: >- Filter for item receipts 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. - in: query name: updatedBefore schema: description: >- Filter for item receipts 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. example: 2025-02-01T12:34:56.000Z type: string description: >- Filter for item receipts 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. - in: query name: transactionDateFrom schema: description: >- Filter for item receipts 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-01` → `2025-01-01T00:00:00`). example: '2025-01-01' type: string format: date description: >- Filter for item receipts 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-01` → `2025-01-01T00:00:00`). - in: query name: transactionDateTo schema: description: >- Filter for item receipts 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-01` → `2025-01-01T23:59:59`). example: '2025-02-01' type: string format: date description: >- Filter for item receipts 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-01` → `2025-01-01T23:59:59`). - in: query name: vendorIds schema: description: Filter for item receipts received from these vendors. example: - 80000001-1234567890 type: array items: type: string description: Filter for item receipts received from these vendors. - in: query name: accountIds schema: description: Filter for item receipts associated with these accounts. example: - 80000001-1234567890 type: array items: type: string description: Filter for item receipts associated with these accounts. - in: query name: refNumberContains schema: description: >- Filter for item receipts whose `refNumber` contains this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberStartsWith` or `refNumberEndsWith`. example: RECEIPT-1234 type: string description: >- Filter for item receipts whose `refNumber` contains this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberStartsWith` or `refNumberEndsWith`. - in: query name: refNumberStartsWith schema: description: >- Filter for item receipts whose `refNumber` starts with this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberContains` or `refNumberEndsWith`. example: RECEIPT type: string description: >- Filter for item receipts whose `refNumber` starts with this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberContains` or `refNumberEndsWith`. - in: query name: refNumberEndsWith schema: description: >- Filter for item receipts whose `refNumber` ends with this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberContains` or `refNumberStartsWith`. example: '1234' type: string description: >- Filter for item receipts whose `refNumber` ends with this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberContains` or `refNumberStartsWith`. - in: query name: refNumberFrom schema: description: >- Filter for item receipts 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: RECEIPT-0001 type: string description: >- Filter for item receipts 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. - in: query name: refNumberTo schema: description: >- Filter for item receipts 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: RECEIPT-9999 type: string description: >- Filter for item receipts 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. - in: query name: currencyIds schema: description: Filter for item receipts in these currencies. example: - 80000001-1234567890 type: array items: type: string description: Filter for item receipts in these currencies. - in: query name: includeLineItems schema: description: Whether to include line items in the response. Defaults to `true`. example: true type: boolean default: true description: Whether to include line items in the response. Defaults to `true`. - in: query name: includeLinkedTransactions schema: description: >- Whether to include linked transactions in the response. Defaults to `false`. For example, a payment linked to the corresponding item receipt. example: false type: boolean default: false description: >- Whether to include linked transactions in the response. Defaults to `false`. For example, a payment linked to the corresponding item receipt. responses: '200': description: Returns a list of item receipts. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: objectType: description: The type of object. This value is always `"list"`. example: list type: string const: list url: type: string description: The endpoint URL where this list can be accessed. example: /v1/quickbooks-desktop/item-receipts data: type: array items: $ref: '#/components/schemas/qbd_item_receipt' description: The array of item receipts. nextCursor: anyOf: - type: string - type: 'null' description: >- The `nextCursor` is a pagination token returned in the response when you use the `limit` parameter in your request. To retrieve subsequent pages of results, include this token as the value of the `cursor` request parameter in your following API calls. **NOTE**: The `nextCursor` value remains constant throughout the pagination process for a specific list instance; continue to use the same `nextCursor` token in each request to fetch additional pages. example: 12345678-abcd-abcd-example-1234567890ab remainingCount: anyOf: - type: number - type: 'null' description: The number of objects remaining to be fetched. example: 10 hasMore: type: boolean description: Indicates whether there are more objects to be fetched. required: - objectType - url - data - nextCursor - remainingCount - hasMore additionalProperties: false x-codeSamples: - lang: JavaScript source: |- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); // Automatically fetches more pages as needed. for await (const itemReceipt of conductor.qbd.itemReceipts.list({ conductorEndUserId: 'end_usr_1234567abcdefg', })) { console.log(itemReceipt.id); } - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) page = conductor.qbd.item_receipts.list( conductor_end_user_id="end_usr_1234567abcdefg", ) page = page.data[0] print(page.id) post: summary: Create an item receipt description: >- Creates an item receipt to record inventory received from a vendor. You can link it to a purchase order during creation to pull in the order's lines automatically and update quantities, but that link can't be added later with an update. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. requestBody: required: true content: application/json: schema: type: object properties: vendorId: description: >- The vendor who sent this item receipt for goods or services purchased. example: 80000001-1234567890 type: string maxLength: 36 payablesAccountId: description: >- The Accounts-Payable (A/P) account to which this item receipt is assigned, used for accounts-payable tracking. If omitted, QuickBooks Desktop uses the default A/P account configured in the company file. **IMPORTANT**: If this item receipt is linked to other transactions, this A/P account must match the `payablesAccount` used in those other transactions. example: 80000001-1234567890 type: string maxLength: 36 transactionDate: type: string format: date description: >- The date of this item receipt, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-01' refNumber: description: >- The case-sensitive user-defined reference number for this item receipt, 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. When left blank in this create request, this field will be left blank in QuickBooks (i.e., it does *not* auto-increment). Maximum length: 20 characters. example: RECEIPT-1234 type: string maxLength: 20 memo: description: A memo or note for this item receipt. example: Received 100 units of Product X from Vendor Y type: string salesTaxCodeId: description: >- The sales-tax code for this item receipt, 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 item receipt'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. example: 80000001-1234567890 type: string maxLength: 36 exchangeRate: description: >- The market exchange rate between this item receipt'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: 1.2345 type: number externalId: type: string format: uuid description: >- 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. **IMPORTANT**: This field must be formatted as a valid GUID; otherwise, QuickBooks will return an error. example: 12345678-abcd-1234-abcd-1234567890ab linkToTransactionIds: description: >- IDs of existing purchase orders that you wish to link to this item receipt. Note that this links entire transactions, not individual transaction lines. If you want to link individual lines in a transaction, instead use the field `linkToTransactionLine` on this item receipt's lines, if available. Transactions can only be linked when creating this item receipt and cannot be unlinked later. You can use both `linkToTransactionIds` (on this item receipt) and `linkToTransactionLine` (on its transaction lines) as long as they do NOT link to the same transaction (otherwise, QuickBooks will return an error). QuickBooks will also return an error if you attempt to link a transaction that is empty or already closed. **IMPORTANT**: By default, QuickBooks will not return any information about the linked transactions in this endpoint's response even when this request is successful. To see the transactions linked via this field, refetch the item receipt and check the `linkedTransactions` response field. If fetching a list of item receipts, you must also specify the parameter `includeLinkedTransactions=true` to see the `linkedTransactions` response field. minItems: 1 type: array items: type: string maxLength: 36 expenseLines: description: >- The item receipt's expense lines, each representing one line in this expense. minItems: 1 type: array items: type: object properties: accountId: description: >- The expense account being debited (increased) for this expense line. The corresponding account being credited is usually a liability account (e.g., Accounts-Payable) or an asset account (e.g., Cash), depending on the transaction type. example: 80000001-1234567890 type: string maxLength: 36 amount: description: >- The monetary amount of this expense line, represented as a decimal string. Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45"). example: '1000.00' type: string memo: description: A memo or note for this expense line. example: New office chair type: string payeeId: description: >- 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). example: 80000001-1234567890 type: string maxLength: 36 classId: description: >- The expense 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 expense lines unless overridden here, at the transaction line level. example: 80000001-1234567890 type: string maxLength: 36 salesTaxCodeId: description: >- The sales-tax code for this expense 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. example: 80000001-1234567890 type: string maxLength: 36 billingStatus: description: The billing status of this expense line. example: billable type: string enum: - billable - has_been_billed - not_billable default: billable salesRepresentativeId: description: >- The expense line's sales representative. Sales representatives can be employees, vendors, or other names in QuickBooks. example: 80000001-1234567890 type: string maxLength: 36 customFields: description: >- The custom fields for the expense line object, added as user-defined data extensions, not included in the standard QuickBooks object. minItems: 1 type: array items: type: object properties: ownerId: type: string description: >- 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. example: '0' name: type: string description: >- 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. example: Customer Rating value: type: string description: >- The value of this custom field. The maximum length depends on the field's data type. example: Premium required: - ownerId - name - value additionalProperties: false additionalProperties: false itemLines: description: >- The item receipt's item lines, each representing the purchase of a specific item or service. minItems: 1 type: array items: type: object properties: itemId: description: >- The item associated with this item 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. example: 80000001-1234567890 type: string maxLength: 36 inventorySiteId: description: >- The site location where inventory for the item associated with this item line is stored. example: 80000001-1234567890 type: string maxLength: 36 inventorySiteLocationId: description: >- The specific location (e.g., bin or shelf) within the inventory site where the item associated with this item line is stored. example: 80000001-1234567890 type: string maxLength: 36 serialNumber: description: >- The serial number of the item associated with this item line. This is used for tracking individual units of serialized inventory items. example: SN1234567890 type: string lotNumber: description: >- The lot number of the item associated with this item line. Used for tracking groups of inventory items that are purchased or manufactured together. example: LOT2023-001 type: string expirationDate: description: >- The expiration date for the serial number or lot number of the item associated with this item line, in ISO 8601 format (YYYY-MM-DD). This is particularly relevant for perishable or time-sensitive inventory items. Note that this field is only supported on QuickBooks Desktop 2023 or later. example: '2025-12-31' type: string format: date description: description: A description of this item line. example: High-quality widget with custom engraving type: string quantity: description: >- The quantity of the item associated with this item line. This field cannot be cleared. **NOTE**: Do not use this field if the associated item is a discount item. example: 5 type: number unitOfMeasure: description: >- The unit-of-measure used for the `quantity` in this item line. Must be a valid unit within the item's available units of measure. example: Each type: string cost: description: >- The cost of this item line, represented as a decimal string. If both `quantity` and `amount` are specified but not `cost`, QuickBooks will use them to calculate `cost`. Decimal string format: up to 5 decimal places and up to 10 digits before the decimal point (for example, "123.45"). example: '1000.00' type: string amount: description: >- The monetary amount of this item line, represented as a decimal string. If both `quantity` and `cost` are specified but not `amount`, QuickBooks will use them to calculate `amount`. If `amount`, `cost`, and `quantity` are all unspecified, then QuickBooks will calculate `amount` based on a `quantity` of `1` and the suggested `cost`. This field cannot be cleared. Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45"). example: '1000.00' type: string customerId: description: >- The customer or customer-job associated with this item line. example: 80000001-1234567890 type: string maxLength: 36 classId: description: >- The item 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 item lines unless overridden here, at the transaction line level. example: 80000001-1234567890 type: string maxLength: 36 salesTaxCodeId: description: >- The sales-tax code for this item 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. example: 80000001-1234567890 type: string maxLength: 36 billingStatus: description: The billing status of this item line. example: billable type: string enum: - billable - has_been_billed - not_billable default: billable overrideItemAccountId: description: >- The account to use for this item line, overriding the default account associated with the item. example: 80000001-1234567890 type: string maxLength: 36 linkToTransactionLine: description: >- An existing transaction line that you wish to link to this item line. Note that this only links to a single transaction line item, not an entire transaction. If you want to link an entire transaction and bring in all its lines, instead use the field `linkToTransactionIds` on the parent transaction, if available. If the parent transaction is a bill or an item receipt, you can only link to purchase orders; QuickBooks does not support linking these transactions to other transaction types. Transaction lines can only be linked when creating this item line and cannot be unlinked later. **IMPORTANT**: If you use `linkToTransactionLine` on this item line, you cannot use the field `item` on this line (QuickBooks will return an error) because this field brings in all of the item information you need. You can, however, specify whatever `quantity` or `rate` that you want, or any other transaction line element other than `item`. If the parent transaction supports the `linkToTransactionIds` field, you can use both `linkToTransactionLine` (on this item line) and `linkToTransactionIds` (on its parent transaction) in the same request as long as they do NOT link to the same transaction (otherwise, QuickBooks will return an error). QuickBooks will also return an error if you attempt to link a transaction that is empty or already closed. **IMPORTANT**: By default, QuickBooks will not return any information about the linked transaction line in this endpoint's response even when this request is successful. To see the transaction line linked via this field, refetch the parent transaction and check the `linkedTransactions` response field. If fetching a list of transactions, you must also specify the parameter `includeLinkedTransactions=true` to see the `linkedTransactions` response field. type: object properties: transactionId: type: string maxLength: 36 description: >- The ID of the transaction to which to link this transaction. example: 123ABC-1234567890 transactionLineId: type: string maxLength: 36 description: >- The ID of the transaction line to which to link this transaction. example: 456DEF-1234567890 required: - transactionId - transactionLineId additionalProperties: false salesRepresentativeId: description: >- The item line's sales representative. Sales representatives can be employees, vendors, or other names in QuickBooks. example: 80000001-1234567890 type: string maxLength: 36 customFields: description: >- The custom fields for the item line object, added as user-defined data extensions, not included in the standard QuickBooks object. minItems: 1 type: array items: type: object properties: ownerId: type: string description: >- 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. example: '0' name: type: string description: >- 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. example: Customer Rating value: type: string description: >- The value of this custom field. The maximum length depends on the field's data type. example: Premium required: - ownerId - name - value additionalProperties: false additionalProperties: false itemGroupLines: description: >- The item receipt's item group lines, each representing a predefined set of items bundled together because they are commonly purchased together or grouped for faster entry. minItems: 1 type: array items: type: object properties: itemGroupId: description: >- The item group line's item group, representing a predefined set of items bundled because they are commonly purchased together or grouped for faster entry. example: 80000001-1234567890 type: string maxLength: 36 quantity: description: >- The quantity of the item group associated with this item group line. This field cannot be cleared. **NOTE**: Do not use this field if the associated item group is a discount item group. example: 5 type: number unitOfMeasure: description: >- The unit-of-measure used for the `quantity` in this item group line. Must be a valid unit within the item's available units of measure. example: Each type: string inventorySiteId: description: >- The site location where inventory for the item group associated with this item group line is stored. example: 80000001-1234567890 type: string maxLength: 36 inventorySiteLocationId: description: >- The specific location (e.g., bin or shelf) within the inventory site where the item group associated with this item group line is stored. example: 80000001-1234567890 type: string maxLength: 36 customFields: description: >- The custom fields for the item group line object, added as user-defined data extensions, not included in the standard QuickBooks object. minItems: 1 type: array items: type: object properties: ownerId: type: string description: >- 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. example: '0' name: type: string description: >- 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. example: Customer Rating value: type: string description: >- The value of this custom field. The maximum length depends on the field's data type. example: Premium required: - ownerId - name - value additionalProperties: false required: - itemGroupId additionalProperties: false required: - vendorId - transactionDate additionalProperties: false responses: '200': description: Returns the newly created item receipt. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_item_receipt' x-codeSamples: - lang: JavaScript source: |- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const itemReceipt = await conductor.qbd.itemReceipts.create({ transactionDate: '2024-10-01', vendorId: '80000001-1234567890', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(itemReceipt.id); - lang: Python source: |- import os from datetime import date from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) item_receipt = conductor.qbd.item_receipts.create( transaction_date=date.fromisoformat("2024-10-01"), vendor_id="80000001-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(item_receipt.id) /quickbooks-desktop/item-receipts/{id}: get: summary: Retrieve an item receipt description: >- Retrieves an item receipt by ID. **IMPORTANT:** If you need to fetch multiple specific item receipts 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. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the item receipt to retrieve. example: 123ABC-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the item receipt to retrieve. responses: '200': description: Returns the specified item receipt. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_item_receipt' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const itemReceipt = await conductor.qbd.itemReceipts.retrieve('123ABC-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(itemReceipt.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) item_receipt = conductor.qbd.item_receipts.retrieve( id="123ABC-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(item_receipt.id) post: summary: Update an item receipt description: >- Updates an existing item receipt. **NOTE:** If you include `expenseLines`, `itemLines`, or `itemGroupLines`, 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. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the item receipt to update. example: 123ABC-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the item receipt to update. requestBody: required: true content: application/json: schema: type: object properties: revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of the item receipt 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. example: '1721172183' vendorId: description: >- The vendor who sent this item receipt for goods or services purchased. example: 80000001-1234567890 type: string maxLength: 36 payablesAccountId: description: >- The Accounts-Payable (A/P) account to which this item receipt is assigned, used for accounts-payable tracking. If omitted, QuickBooks Desktop uses the default A/P account configured in the company file. **IMPORTANT**: If this item receipt is linked to other transactions, this A/P account must match the `payablesAccount` used in those other transactions. example: 80000001-1234567890 type: string maxLength: 36 transactionDate: description: >- The date of this item receipt, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-01' type: string format: date refNumber: description: >- The case-sensitive user-defined reference number for this item receipt, 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: 20 characters. example: RECEIPT-1234 type: string maxLength: 20 memo: description: A memo or note for this item receipt. example: Received 100 units of Product X from Vendor Y type: string salesTaxCodeId: description: >- The sales-tax code for this item receipt, 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 item receipt'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. example: 80000001-1234567890 type: string maxLength: 36 exchangeRate: description: >- The market exchange rate between this item receipt'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: 1.2345 type: number clearExpenseLines: description: >- When `true`, removes all existing expense lines associated with this item receipt. To modify or add individual expense lines, use the field `expenseLines` instead. example: false type: boolean expenseLines: description: >- The item receipt's expense lines, each representing one line in this expense. **IMPORTANT**: 1. Including this array in your update request will **REPLACE** all existing expense lines for the item receipt with this array. To keep any existing expense lines, you must include them in this array even if they have not changed. **Any expense lines not included will be removed.** 2. To add a new expense line, include it here with the `id` field set to `-1`. 3. If you do not wish to modify any expense lines, omit this field entirely to keep them unchanged. minItems: 1 type: array items: type: object properties: id: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of an existing expense line you wish to retain or update. **IMPORTANT**: Set this field to `-1` for new expense lines you wish to add. example: 456DEF-1234567890 accountId: description: >- The expense account being debited (increased) for this expense line. The corresponding account being credited is usually a liability account (e.g., Accounts-Payable) or an asset account (e.g., Cash), depending on the transaction type. example: 80000001-1234567890 type: string maxLength: 36 amount: description: >- The monetary amount of this expense line, represented as a decimal string. Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45"). example: '1000.00' type: string memo: description: A memo or note for this expense line. example: New office chair type: string payeeId: description: >- 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). example: 80000001-1234567890 type: string maxLength: 36 classId: description: >- The expense 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 expense lines unless overridden here, at the transaction line level. example: 80000001-1234567890 type: string maxLength: 36 salesTaxCodeId: description: >- The sales-tax code for this expense 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. example: 80000001-1234567890 type: string maxLength: 36 billingStatus: description: The billing status of this expense line. example: billable type: string enum: - billable - has_been_billed - not_billable salesRepresentativeId: description: >- The expense line's sales representative. Sales representatives can be employees, vendors, or other names in QuickBooks. example: 80000001-1234567890 type: string maxLength: 36 required: - id additionalProperties: false clearItemLines: description: >- When `true`, removes all existing item lines associated with this item receipt. To modify or add individual item lines, use the field `itemLines` instead. example: false type: boolean itemLines: description: >- The item receipt's item lines, each representing the purchase of a specific item or service. **IMPORTANT**: 1. Including this array in your update request will **REPLACE** all existing item lines for the item receipt with this array. To keep any existing item lines, you must include them in this array even if they have not changed. **Any item lines not included will be removed.** 2. To add a new item line, include it here with the `id` field set to `-1`. 3. If you do not wish to modify any item lines, omit this field entirely to keep them unchanged. minItems: 1 type: array items: type: object properties: id: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of an existing item line you wish to retain or update. **IMPORTANT**: Set this field to `-1` for new item lines you wish to add. example: 456DEF-1234567890 itemId: description: >- The item associated with this item 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. example: 80000001-1234567890 type: string maxLength: 36 inventorySiteId: description: >- The site location where inventory for the item associated with this item line is stored. example: 80000001-1234567890 type: string maxLength: 36 inventorySiteLocationId: description: >- The specific location (e.g., bin or shelf) within the inventory site where the item associated with this item line is stored. example: 80000001-1234567890 type: string maxLength: 36 serialNumber: description: >- The serial number of the item associated with this item line. This is used for tracking individual units of serialized inventory items. example: SN1234567890 type: string lotNumber: description: >- The lot number of the item associated with this item line. Used for tracking groups of inventory items that are purchased or manufactured together. example: LOT2023-001 type: string expirationDate: description: >- The expiration date for the serial number or lot number of the item associated with this item line, in ISO 8601 format (YYYY-MM-DD). This is particularly relevant for perishable or time-sensitive inventory items. Note that this field is only supported on QuickBooks Desktop 2023 or later. example: '2025-12-31' type: string format: date description: description: A description of this item line. example: High-quality widget with custom engraving type: string quantity: description: >- The quantity of the item associated with this item line. This field cannot be cleared. **NOTE**: Do not use this field if the associated item is a discount item. example: 5 type: number unitOfMeasure: description: >- The unit-of-measure used for the `quantity` in this item line. Must be a valid unit within the item's available units of measure. example: Each type: string overrideUnitOfMeasureSetId: description: >- Specifies an alternative unit-of-measure set when updating this item 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. example: 80000001-1234567890 type: string maxLength: 36 cost: description: >- The cost of this item line, represented as a decimal string. If both `quantity` and `amount` are specified but not `cost`, QuickBooks will use them to calculate `cost`. Decimal string format: up to 5 decimal places and up to 10 digits before the decimal point (for example, "123.45"). example: '1000.00' type: string amount: description: >- The monetary amount of this item line, represented as a decimal string. If both `quantity` and `cost` are specified but not `amount`, QuickBooks will use them to calculate `amount`. If `amount`, `cost`, and `quantity` are all unspecified, then QuickBooks will calculate `amount` based on a `quantity` of `1` and the suggested `cost`. This field cannot be cleared. Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45"). example: '1000.00' type: string customerId: description: >- The customer or customer-job associated with this item line. example: 80000001-1234567890 type: string maxLength: 36 classId: description: >- The item 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 item lines unless overridden here, at the transaction line level. example: 80000001-1234567890 type: string maxLength: 36 salesTaxCodeId: description: >- The sales-tax code for this item 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. example: 80000001-1234567890 type: string maxLength: 36 billingStatus: description: The billing status of this item line. example: billable type: string enum: - billable - has_been_billed - not_billable overrideItemAccountId: description: >- The account to use for this item line, overriding the default account associated with the item. example: 80000001-1234567890 type: string maxLength: 36 salesRepresentativeId: description: >- The item line's sales representative. Sales representatives can be employees, vendors, or other names in QuickBooks. example: 80000001-1234567890 type: string maxLength: 36 required: - id additionalProperties: false itemGroupLines: description: >- The item receipt's item group lines, each representing a predefined set of items bundled together because they are commonly purchased together or grouped for faster entry. **IMPORTANT**: 1. Including this array in your update request will **REPLACE** all existing item group lines for the item receipt with this array. To keep any existing item group lines, you must include them in this array even if they have not changed. **Any item group lines not included will be removed.** 2. To add a new item group line, include it here with the `id` field set to `-1`. 3. If you do not wish to modify any item group lines, omit this field entirely to keep them unchanged. minItems: 1 type: array items: type: object properties: id: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of an existing item group line you wish to retain or update. **IMPORTANT**: Set this field to `-1` for new item group lines you wish to add. example: 456DEF-1234567890 itemGroupId: description: >- The item group line's item group, representing a predefined set of items bundled because they are commonly purchased together or grouped for faster entry. example: 80000001-1234567890 type: string maxLength: 36 quantity: description: >- The quantity of the item group associated with this item group line. This field cannot be cleared. **NOTE**: Do not use this field if the associated item group is a discount item group. example: 5 type: number unitOfMeasure: description: >- The unit-of-measure used for the `quantity` in this item group line. Must be a valid unit within the item's available units of measure. example: Each type: string overrideUnitOfMeasureSetId: description: >- Specifies an alternative unit-of-measure set when updating this item group 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. example: 80000001-1234567890 type: string maxLength: 36 itemLines: description: >- The item group line's item lines, each representing the purchase of a specific item or service. **IMPORTANT**: 1. Including this array in your update request will **REPLACE** all existing item lines for the item group line with this array. To keep any existing item lines, you must include them in this array even if they have not changed. **Any item lines not included will be removed.** 2. To add a new item line, include it here with the `id` field set to `-1`. 3. If you do not wish to modify any item lines, omit this field entirely to keep them unchanged. minItems: 1 type: array items: type: object properties: id: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of an existing item line you wish to retain or update. **IMPORTANT**: Set this field to `-1` for new item lines you wish to add. example: 456DEF-1234567890 itemId: description: >- The item associated with this item 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. example: 80000001-1234567890 type: string maxLength: 36 inventorySiteId: description: >- The site location where inventory for the item associated with this item line is stored. example: 80000001-1234567890 type: string maxLength: 36 inventorySiteLocationId: description: >- The specific location (e.g., bin or shelf) within the inventory site where the item associated with this item line is stored. example: 80000001-1234567890 type: string maxLength: 36 serialNumber: description: >- The serial number of the item associated with this item line. This is used for tracking individual units of serialized inventory items. example: SN1234567890 type: string lotNumber: description: >- The lot number of the item associated with this item line. Used for tracking groups of inventory items that are purchased or manufactured together. example: LOT2023-001 type: string expirationDate: description: >- The expiration date for the serial number or lot number of the item associated with this item line, in ISO 8601 format (YYYY-MM-DD). This is particularly relevant for perishable or time-sensitive inventory items. Note that this field is only supported on QuickBooks Desktop 2023 or later. example: '2025-12-31' type: string format: date description: description: A description of this item line. example: High-quality widget with custom engraving type: string quantity: description: >- The quantity of the item associated with this item line. This field cannot be cleared. **NOTE**: Do not use this field if the associated item is a discount item. example: 5 type: number unitOfMeasure: description: >- The unit-of-measure used for the `quantity` in this item line. Must be a valid unit within the item's available units of measure. example: Each type: string overrideUnitOfMeasureSetId: description: >- Specifies an alternative unit-of-measure set when updating this item 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. example: 80000001-1234567890 type: string maxLength: 36 cost: description: >- The cost of this item line, represented as a decimal string. If both `quantity` and `amount` are specified but not `cost`, QuickBooks will use them to calculate `cost`. Decimal string format: up to 5 decimal places and up to 10 digits before the decimal point (for example, "123.45"). example: '1000.00' type: string amount: description: >- The monetary amount of this item line, represented as a decimal string. If both `quantity` and `cost` are specified but not `amount`, QuickBooks will use them to calculate `amount`. If `amount`, `cost`, and `quantity` are all unspecified, then QuickBooks will calculate `amount` based on a `quantity` of `1` and the suggested `cost`. This field cannot be cleared. Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45"). example: '1000.00' type: string customerId: description: >- The customer or customer-job associated with this item line. example: 80000001-1234567890 type: string maxLength: 36 classId: description: >- The item 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 item lines unless overridden here, at the transaction line level. example: 80000001-1234567890 type: string maxLength: 36 salesTaxCodeId: description: >- The sales-tax code for this item 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. example: 80000001-1234567890 type: string maxLength: 36 billingStatus: description: The billing status of this item line. example: billable type: string enum: - billable - has_been_billed - not_billable overrideItemAccountId: description: >- The account to use for this item line, overriding the default account associated with the item. example: 80000001-1234567890 type: string maxLength: 36 salesRepresentativeId: description: >- The item line's sales representative. Sales representatives can be employees, vendors, or other names in QuickBooks. example: 80000001-1234567890 type: string maxLength: 36 required: - id additionalProperties: false required: - id additionalProperties: false required: - revisionNumber additionalProperties: false responses: '200': description: Returns the updated item receipt. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_item_receipt' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const itemReceipt = await conductor.qbd.itemReceipts.update('123ABC-1234567890', { revisionNumber: '1721172183', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(itemReceipt.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) item_receipt = conductor.qbd.item_receipts.update( id="123ABC-1234567890", revision_number="1721172183", conductor_end_user_id="end_usr_1234567abcdefg", ) print(item_receipt.id) delete: summary: Delete an item receipt description: >- Permanently deletes an item receipt. The deletion will fail if the item receipt is currently in use or has any linked transactions that are in use. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the item receipt to delete. example: 123ABC-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the item receipt to delete. responses: '200': description: >- Returns a confirmation of the deletion with the ID of the deleted item receipt. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: id: type: string description: >- The QuickBooks-assigned unique identifier of the deleted item receipt. example: 123ABC-1234567890 objectType: description: >- The type of object. This value is always `"qbd_item_receipt"`. example: qbd_item_receipt type: string const: qbd_item_receipt refNumber: anyOf: - type: string - type: 'null' description: >- The case-sensitive user-defined reference number of the deleted item receipt. example: RECEIPT-1234 deleted: type: boolean description: Indicates whether the item receipt was deleted. example: true required: - id - objectType - refNumber - deleted additionalProperties: false x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const itemReceipt = await conductor.qbd.itemReceipts.delete('123ABC-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(itemReceipt.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) item_receipt = conductor.qbd.item_receipts.delete( id="123ABC-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(item_receipt.id) /quickbooks-desktop/item-receipts/{id}/void: post: summary: Void an item receipt description: >- Voids an item receipt by setting its amount to zero while keeping a record of it in QuickBooks. The void will fail if the item receipt is currently in use or has any linked transactions that are in use. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the item receipt to void. example: 123ABC-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the item receipt to void. responses: '200': description: >- Returns a confirmation of the void with the ID of the voided item receipt. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: id: type: string description: >- The QuickBooks-assigned unique identifier of the voided item receipt. example: 123ABC-1234567890 objectType: description: >- The type of object. This value is always `"qbd_item_receipt"`. example: qbd_item_receipt type: string const: qbd_item_receipt createdAt: anyOf: - type: string - type: 'null' description: >- The date and time when this item receipt 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. example: 2025-01-01T12:34:56.000Z updatedAt: anyOf: - type: string - type: 'null' description: >- The date and time when this item receipt 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. example: 2025-02-01T12:34:56.000Z refNumber: anyOf: - type: string - type: 'null' description: >- The case-sensitive user-defined reference number of the voided item receipt. example: RECEIPT-1234 voided: type: boolean description: Indicates whether the item receipt was voided. example: true required: - id - objectType - createdAt - updatedAt - refNumber - voided additionalProperties: false x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const response = await conductor.qbd.itemReceipts.void('123ABC-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(response.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) response = conductor.qbd.item_receipts.void( id="123ABC-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(response.id) /quickbooks-desktop/item-sites: get: summary: List all item sites description: >- Returns a list of item sites. Use the `cursor` parameter to paginate through the results. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: query name: ids schema: description: >- Filter for specific item sites 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: - 80000001-1234567890 type: array items: type: string description: >- Filter for specific item sites 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. - in: query name: itemType schema: description: >- Filter for item sites that match this item type. **NOTE:** QuickBooks Desktop only supports `itemType` or item/site filters for item-sites requests, not both. Do not use `itemType` together with `itemIds` or `siteIds`. example: inventory type: string enum: - all_except_fixed_asset - assembly - discount - fixed_asset - inventory - inventory_and_assembly - non_inventory - other_charge - payment - sales - sales_tax - service description: >- Filter for item sites that match this item type. **NOTE:** QuickBooks Desktop only supports `itemType` or item/site filters for item-sites requests, not both. Do not use `itemType` together with `itemIds` or `siteIds`. - in: query name: itemIds schema: description: >- Filter for item sites for these items. **NOTE:** QuickBooks Desktop only supports `itemType` or item/site filters for item-sites requests, not both. Do not use `itemType` together with `itemIds` or `siteIds`. example: - 80000001-1234567890 type: array items: type: string description: >- Filter for item sites for these items. **NOTE:** QuickBooks Desktop only supports `itemType` or item/site filters for item-sites requests, not both. Do not use `itemType` together with `itemIds` or `siteIds`. - in: query name: siteIds schema: description: >- Filter for item sites at these sites. A site represents a physical location, such as a warehouse or store. **NOTE:** QuickBooks Desktop only supports `itemType` or item/site filters for item-sites requests, not both. Do not use `itemType` together with `itemIds` or `siteIds`. example: - 80000001-1234567890 type: array items: type: string description: >- Filter for item sites at these sites. A site represents a physical location, such as a warehouse or store. **NOTE:** QuickBooks Desktop only supports `itemType` or item/site filters for item-sites requests, not both. Do not use `itemType` together with `itemIds` or `siteIds`. - in: query name: limit schema: default: 150 description: >- 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. example: 150 type: integer minimum: 1 maximum: 150 description: >- 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. - in: query name: cursor schema: description: >- 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 type: string description: >- 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. - in: query name: status schema: description: Filter for item sites that are active, inactive, or both. example: active type: string enum: - active - all - inactive default: active description: Filter for item sites that are active, inactive, or both. responses: '200': description: Returns a list of item sites. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: objectType: description: The type of object. This value is always `"list"`. example: list type: string const: list url: type: string description: The endpoint URL where this list can be accessed. example: /v1/quickbooks-desktop/item-sites data: type: array items: $ref: '#/components/schemas/qbd_item_site' description: The array of item sites. nextCursor: anyOf: - type: string - type: 'null' description: >- The `nextCursor` is a pagination token returned in the response when you use the `limit` parameter in your request. To retrieve subsequent pages of results, include this token as the value of the `cursor` request parameter in your following API calls. **NOTE**: The `nextCursor` value remains constant throughout the pagination process for a specific list instance; continue to use the same `nextCursor` token in each request to fetch additional pages. example: 12345678-abcd-abcd-example-1234567890ab remainingCount: anyOf: - type: number - type: 'null' description: The number of objects remaining to be fetched. example: 10 hasMore: type: boolean description: Indicates whether there are more objects to be fetched. required: - objectType - url - data - nextCursor - remainingCount - hasMore additionalProperties: false x-codeSamples: - lang: JavaScript source: |- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); // Automatically fetches more pages as needed. for await (const itemSite of conductor.qbd.itemSites.list({ conductorEndUserId: 'end_usr_1234567abcdefg', })) { console.log(itemSite.id); } - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) page = conductor.qbd.item_sites.list( conductor_end_user_id="end_usr_1234567abcdefg", ) page = page.data[0] print(page.id) /quickbooks-desktop/item-sites/{id}: get: summary: Retrieve an item site description: >- Retrieves an item site by ID. **IMPORTANT:** If you need to fetch multiple specific item sites 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. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the item site to retrieve. example: 80000001-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the item site to retrieve. responses: '200': description: Returns the specified item site. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_item_site' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const itemSite = await conductor.qbd.itemSites.retrieve('80000001-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(itemSite.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) item_site = conductor.qbd.item_sites.retrieve( id="80000001-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(item_site.id) /quickbooks-desktop/journal-entries: get: summary: List all journal entries description: >- Returns a list of journal entries. Use the `cursor` parameter to paginate through the results. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: query name: ids schema: description: >- Filter for specific journal entries 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 type: array items: type: string description: >- Filter for specific journal entries 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. - in: query name: refNumbers schema: description: >- Filter for specific journal entries 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: - JOURNAL ENTRY-1234 type: array items: type: string description: >- Filter for specific journal entries 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. - in: query name: limit schema: default: 150 description: >- 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. example: 150 type: integer minimum: 1 maximum: 150 description: >- 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. - in: query name: cursor schema: description: >- 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 type: string description: >- 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. - in: query name: updatedAfter schema: description: >- Filter for journal entries 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. example: 2025-01-01T12:34:56.000Z type: string description: >- Filter for journal entries 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. - in: query name: updatedBefore schema: description: >- Filter for journal entries 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. example: 2025-02-01T12:34:56.000Z type: string description: >- Filter for journal entries 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. - in: query name: transactionDateFrom schema: description: >- Filter for journal entries 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-01` → `2025-01-01T00:00:00`). example: '2025-01-01' type: string format: date description: >- Filter for journal entries 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-01` → `2025-01-01T00:00:00`). - in: query name: transactionDateTo schema: description: >- Filter for journal entries 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-01` → `2025-01-01T23:59:59`). example: '2025-02-01' type: string format: date description: >- Filter for journal entries 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-01` → `2025-01-01T23:59:59`). - in: query name: entityIds schema: description: >- Filter for journal entries associated with these entities (customers, vendors, employees, etc.). example: - 80000001-1234567890 type: array items: type: string description: >- Filter for journal entries associated with these entities (customers, vendors, employees, etc.). - in: query name: accountIds schema: description: Filter for journal entries associated with these accounts. example: - 80000001-1234567890 type: array items: type: string description: Filter for journal entries associated with these accounts. - in: query name: refNumberContains schema: description: >- Filter for journal entries whose `refNumber` contains this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberStartsWith` or `refNumberEndsWith`. example: JE-1234 type: string description: >- Filter for journal entries whose `refNumber` contains this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberStartsWith` or `refNumberEndsWith`. - in: query name: refNumberStartsWith schema: description: >- Filter for journal entries whose `refNumber` starts with this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberContains` or `refNumberEndsWith`. example: JE type: string description: >- Filter for journal entries whose `refNumber` starts with this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberContains` or `refNumberEndsWith`. - in: query name: refNumberEndsWith schema: description: >- Filter for journal entries whose `refNumber` ends with this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberContains` or `refNumberStartsWith`. example: '1234' type: string description: >- Filter for journal entries whose `refNumber` ends with this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberContains` or `refNumberStartsWith`. - in: query name: refNumberFrom schema: description: >- Filter for journal entries 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: JE-0001 type: string description: >- Filter for journal entries 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. - in: query name: refNumberTo schema: description: >- Filter for journal entries 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: JE-9999 type: string description: >- Filter for journal entries 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. - in: query name: currencyIds schema: description: Filter for journal entries in these currencies. example: - 80000001-1234567890 type: array items: type: string description: Filter for journal entries in these currencies. - in: query name: includeLineItems schema: description: Whether to include line items in the response. Defaults to `true`. example: true type: boolean default: true description: Whether to include line items in the response. Defaults to `true`. responses: '200': description: Returns a list of journal entries. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: objectType: description: The type of object. This value is always `"list"`. example: list type: string const: list url: type: string description: The endpoint URL where this list can be accessed. example: /v1/quickbooks-desktop/journal-entries data: type: array items: $ref: '#/components/schemas/qbd_journal_entry' description: The array of journal entries. nextCursor: anyOf: - type: string - type: 'null' description: >- The `nextCursor` is a pagination token returned in the response when you use the `limit` parameter in your request. To retrieve subsequent pages of results, include this token as the value of the `cursor` request parameter in your following API calls. **NOTE**: The `nextCursor` value remains constant throughout the pagination process for a specific list instance; continue to use the same `nextCursor` token in each request to fetch additional pages. example: 12345678-abcd-abcd-example-1234567890ab remainingCount: anyOf: - type: number - type: 'null' description: The number of objects remaining to be fetched. example: 10 hasMore: type: boolean description: Indicates whether there are more objects to be fetched. required: - objectType - url - data - nextCursor - remainingCount - hasMore additionalProperties: false x-codeSamples: - lang: JavaScript source: |- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); // Automatically fetches more pages as needed. for await (const journalEntry of conductor.qbd.journalEntries.list({ conductorEndUserId: 'end_usr_1234567abcdefg', })) { console.log(journalEntry.id); } - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) page = conductor.qbd.journal_entries.list( conductor_end_user_id="end_usr_1234567abcdefg", ) page = page.data[0] print(page.id) post: summary: Create a journal entry description: >- Creates a journal entry with balanced debit and credit lines. QuickBooks Desktop requires total debits to equal total credits, and any line that posts to Accounts Receivable or Accounts Payable must include the related customer or vendor reference. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. requestBody: required: true content: application/json: schema: type: object properties: transactionDate: type: string format: date description: >- The date of this journal entry, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-01' refNumber: description: >- The case-sensitive user-defined reference number for this journal entry, 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. When left blank in this create request, this field will be left blank in QuickBooks (i.e., it does *not* auto-increment). Maximum length: 11 characters. example: JE-1234 type: string maxLength: 11 isAdjustment: description: >- Indicates whether this journal entry is an adjustment entry. When `true`, QuickBooks retains the original entry information to maintain an audit trail of the adjustments. example: false type: boolean isHomeCurrencyAdjustment: description: >- Indicates whether this journal entry is an adjustment made in the company's home currency for a transaction that was originally recorded in a foreign currency. example: false type: boolean areAmountsEnteredInHomeCurrency: description: >- Indicates whether the amounts in this journal entry were entered in the company's home currency rather than a foreign currency. When `true`, amounts are in the home currency regardless of the `currency` field. example: false type: boolean currencyId: description: >- The journal entry's currency. For built-in currencies, the name and code are standard ISO 4217 international values. For user-defined currencies, all values are editable. example: 80000001-1234567890 type: string maxLength: 36 exchangeRate: description: >- The market exchange rate between this journal entry'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: 1.2345 type: number externalId: type: string format: uuid description: >- 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. **IMPORTANT**: This field must be formatted as a valid GUID; otherwise, QuickBooks will return an error. example: 12345678-abcd-1234-abcd-1234567890ab debitLines: description: The journal entry's debit lines. minItems: 1 type: array items: type: object properties: accountId: description: >- The account to which this journal debit line is being debited. This will decrease the balance of this account. example: 80000001-1234567890 type: string maxLength: 36 amount: description: >- The monetary amount of this journal debit line, represented as a decimal string. Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45"). example: '1000.00' type: string memo: description: A memo or note for this journal debit line. example: Monthly utility bill settlement type: string entityId: description: >- The customer, vendor, employee, or other entity associated with this journal debit line. **IMPORTANT**: If the journal debit line's `account` is an Accounts Receivable (A/R) account, this field must refer to a customer. If the journal debit line's `account` is an Accounts Payable (A/P) account, this field must refer to a vendor. If these requirements are not met, QuickBooks Desktop will not record the transaction. example: 80000001-1234567890 type: string maxLength: 36 classId: description: >- The journal debit 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 journal debit lines unless overridden here, at the transaction line level. example: 80000001-1234567890 type: string maxLength: 36 salesTaxItemId: description: >- The sales-tax item used to calculate the actual tax amount for this journal debit line's transactions by applying a specific tax rate collected for a single tax agency. Unlike `salesTaxCode`, which only indicates general taxability, this field drives the actual tax calculation and reporting. example: 80000001-1234567890 type: string maxLength: 36 billingStatus: description: The billing status of this journal debit line. example: billable type: string enum: - billable - has_been_billed - not_billable default: billable required: - accountId additionalProperties: false creditLines: description: The journal entry's credit lines. minItems: 1 type: array items: type: object properties: accountId: description: >- The account to which this journal credit line is being credited. This will increase the balance of this account. example: 80000001-1234567890 type: string maxLength: 36 amount: description: >- The monetary amount of this journal credit line, represented as a decimal string. Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45"). example: '1000.00' type: string memo: description: A memo or note for this journal credit line. example: Allocated funds for office lease payment type: string entityId: description: >- The customer, vendor, employee, or other entity associated with this journal credit line. **IMPORTANT**: If the journal credit line's `account` is an Accounts Receivable (A/R) account, this field must refer to a customer. If the journal credit line's `account` is an Accounts Payable (A/P) account, this field must refer to a vendor. If these requirements are not met, QuickBooks Desktop will not record the transaction. example: 80000001-1234567890 type: string maxLength: 36 classId: description: >- The journal credit 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 journal credit lines unless overridden here, at the transaction line level. example: 80000001-1234567890 type: string maxLength: 36 salesTaxItemId: description: >- The sales-tax item used to calculate the actual tax amount for this journal credit line's transactions by applying a specific tax rate collected for a single tax agency. Unlike `salesTaxCode`, which only indicates general taxability, this field drives the actual tax calculation and reporting. example: 80000001-1234567890 type: string maxLength: 36 billingStatus: description: The billing status of this journal credit line. example: billable type: string enum: - billable - has_been_billed - not_billable default: billable required: - accountId additionalProperties: false required: - transactionDate additionalProperties: false responses: '200': description: Returns the newly created journal entry. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_journal_entry' x-codeSamples: - lang: JavaScript source: |- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const journalEntry = await conductor.qbd.journalEntries.create({ transactionDate: '2024-10-01', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(journalEntry.id); - lang: Python source: |- import os from datetime import date from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) journal_entry = conductor.qbd.journal_entries.create( transaction_date=date.fromisoformat("2024-10-01"), conductor_end_user_id="end_usr_1234567abcdefg", ) print(journal_entry.id) /quickbooks-desktop/journal-entries/{id}: get: summary: Retrieve a journal entry description: >- Retrieves a journal entry by ID. **IMPORTANT:** If you need to fetch multiple specific journal entries 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. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the journal entry to retrieve. example: 123ABC-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the journal entry to retrieve. responses: '200': description: Returns the specified journal entry. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_journal_entry' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const journalEntry = await conductor.qbd.journalEntries.retrieve('123ABC-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(journalEntry.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) journal_entry = conductor.qbd.journal_entries.retrieve( id="123ABC-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(journal_entry.id) post: summary: Update a journal entry description: >- Updates an existing journal entry. Keep the debits and credits in balance, and include the related customer or vendor on any A/R or A/P line you submit in the update body. **NOTE:** If you include `lines`, QuickBooks Desktop replaces that line list with the array you send, so include unchanged lines you want to keep and use `id: "-1"` for new lines. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the journal entry to update. example: 123ABC-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the journal entry to update. requestBody: required: true content: application/json: schema: type: object properties: revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of the journal entry 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. example: '1721172183' transactionDate: description: >- The date of this journal entry, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-01' type: string format: date refNumber: description: >- The case-sensitive user-defined reference number for this journal entry, 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. example: JE-1234 type: string maxLength: 11 isAdjustment: description: >- Indicates whether this journal entry is an adjustment entry. When `true`, QuickBooks retains the original entry information to maintain an audit trail of the adjustments. example: false type: boolean areAmountsEnteredInHomeCurrency: description: >- Indicates whether the amounts in this journal entry were entered in the company's home currency rather than a foreign currency. When `true`, amounts are in the home currency regardless of the `currency` field. example: false type: boolean currencyId: description: >- The journal entry's currency. For built-in currencies, the name and code are standard ISO 4217 international values. For user-defined currencies, all values are editable. example: 80000001-1234567890 type: string maxLength: 36 exchangeRate: description: >- The market exchange rate between this journal entry'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: 1.2345 type: number lines: description: >- The journal entry's credit and debit lines. **IMPORTANT**: When updating journal entries, you must include ALL existing journal lines (both credit and debit) in your update request, even if you only want to modify a single line. QuickBooks will automatically delete any existing lines that are not included in the update request, which is why all lines must be provided in a single array when updating. minItems: 1 type: array items: type: object properties: id: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of an existing journal line you wish to retain or update. **IMPORTANT**: Set this field to `-1` for new journal lines you wish to add. example: 456DEF-1234567890 journalLineType: description: The type of journal line (debit or credit). example: debit type: string enum: - debit - credit accountId: description: >- The account to which this journal line is being credited or debited. example: 80000001-1234567890 type: string maxLength: 36 amount: description: >- The monetary amount of this journal line, represented as a decimal string. Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45"). example: '1000.00' type: string memo: description: A memo or note for this journal line. example: Allocated funds for office lease payment type: string entityId: description: >- The customer, vendor, employee, or other entity associated with this journal line. **IMPORTANT**: If the journal line's `account` is an Accounts Receivable (A/R) account, this field must refer to a customer. If the journal line's `account` is an Accounts Payable (A/P) account, this field must refer to a vendor. If these requirements are not met, QuickBooks Desktop will not record the transaction. example: 80000001-1234567890 type: string maxLength: 36 classId: description: >- The journal 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 journal lines unless overridden here, at the transaction line level. example: 80000001-1234567890 type: string maxLength: 36 salesTaxItemId: description: >- The sales-tax item used to calculate the actual tax amount for this journal line's transactions by applying a specific tax rate collected for a single tax agency. Unlike `salesTaxCode`, which only indicates general taxability, this field drives the actual tax calculation and reporting. example: 80000001-1234567890 type: string maxLength: 36 billingStatus: description: The billing status of this journal line. example: billable type: string enum: - billable - has_been_billed - not_billable required: - id additionalProperties: false required: - revisionNumber additionalProperties: false responses: '200': description: Returns the updated journal entry. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_journal_entry' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const journalEntry = await conductor.qbd.journalEntries.update('123ABC-1234567890', { revisionNumber: '1721172183', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(journalEntry.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) journal_entry = conductor.qbd.journal_entries.update( id="123ABC-1234567890", revision_number="1721172183", conductor_end_user_id="end_usr_1234567abcdefg", ) print(journal_entry.id) delete: summary: Delete a journal entry description: >- Permanently deletes a journal entry. The deletion will fail if the journal entry is currently in use or has any linked transactions that are in use. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the journal entry to delete. example: 123ABC-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the journal entry to delete. responses: '200': description: >- Returns a confirmation of the deletion with the ID of the deleted journal entry. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: id: type: string description: >- The QuickBooks-assigned unique identifier of the deleted journal entry. example: 123ABC-1234567890 objectType: description: >- The type of object. This value is always `"qbd_journal_entry"`. example: qbd_journal_entry type: string const: qbd_journal_entry refNumber: anyOf: - type: string - type: 'null' description: >- The case-sensitive user-defined reference number of the deleted journal entry. example: JE-1234 deleted: type: boolean description: Indicates whether the journal entry was deleted. example: true required: - id - objectType - refNumber - deleted additionalProperties: false x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const journalEntry = await conductor.qbd.journalEntries.delete('123ABC-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(journalEntry.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) journal_entry = conductor.qbd.journal_entries.delete( id="123ABC-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(journal_entry.id) /quickbooks-desktop/journal-entries/{id}/void: post: summary: Void a journal entry description: >- Voids a journal entry by setting its amount to zero while keeping a record of it in QuickBooks. The void will fail if the journal entry is currently in use or has any linked transactions that are in use. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the journal entry to void. example: 123ABC-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the journal entry to void. responses: '200': description: >- Returns a confirmation of the void with the ID of the voided journal entry. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: id: type: string description: >- The QuickBooks-assigned unique identifier of the voided journal entry. example: 123ABC-1234567890 objectType: description: >- The type of object. This value is always `"qbd_journal_entry"`. example: qbd_journal_entry type: string const: qbd_journal_entry createdAt: anyOf: - type: string - type: 'null' description: >- The date and time when this journal entry 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. example: 2025-01-01T12:34:56.000Z updatedAt: anyOf: - type: string - type: 'null' description: >- The date and time when this journal entry 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. example: 2025-02-01T12:34:56.000Z refNumber: anyOf: - type: string - type: 'null' description: >- The case-sensitive user-defined reference number of the voided journal entry. example: JE-1234 voided: type: boolean description: Indicates whether the journal entry was voided. example: true required: - id - objectType - createdAt - updatedAt - refNumber - voided additionalProperties: false x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const response = await conductor.qbd.journalEntries.void('123ABC-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(response.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) response = conductor.qbd.journal_entries.void( id="123ABC-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(response.id) /quickbooks-desktop/non-inventory-items: get: summary: List all non-inventory items description: >- Returns a list of non-inventory items. Use the `cursor` parameter to paginate through the results. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: query name: ids schema: description: >- Filter for specific non-inventory items 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: - 80000001-1234567890 type: array items: type: string description: >- Filter for specific non-inventory items 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. - in: query name: fullNames schema: description: >- Filter for specific non-inventory items by their full-name(s), case-insensitive. Like `id`, `fullName` is a unique identifier for a non-inventory item, formed by by combining the names of its parent objects with its own `name`, separated by colons. For example, if a non-inventory item is under "Office Supplies" and has the `name` "Printer Ink Cartridge", its `fullName` would be "Office Supplies:Printer Ink Cartridge". **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: - Office Supplies:Printer Ink Cartridge type: array items: type: string description: >- Filter for specific non-inventory items by their full-name(s), case-insensitive. Like `id`, `fullName` is a unique identifier for a non-inventory item, formed by by combining the names of its parent objects with its own `name`, separated by colons. For example, if a non-inventory item is under "Office Supplies" and has the `name` "Printer Ink Cartridge", its `fullName` would be "Office Supplies:Printer Ink Cartridge". **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. - in: query name: limit schema: default: 150 description: >- 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. example: 150 type: integer minimum: 1 maximum: 150 description: >- 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. - in: query name: cursor schema: description: >- 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 type: string description: >- 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. - in: query name: status schema: description: Filter for non-inventory items that are active, inactive, or both. example: active type: string enum: - active - all - inactive default: active description: Filter for non-inventory items that are active, inactive, or both. - in: query name: updatedAfter schema: description: >- Filter for non-inventory items 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. example: 2025-01-01T12:34:56.000Z type: string description: >- Filter for non-inventory items 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. - in: query name: updatedBefore schema: description: >- Filter for non-inventory items 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. example: 2025-02-01T12:34:56.000Z type: string description: >- Filter for non-inventory items 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. - in: query name: nameContains schema: description: >- Filter for non-inventory items whose `name` contains this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameStartsWith` or `nameEndsWith`. example: ABC type: string description: >- Filter for non-inventory items whose `name` contains this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameStartsWith` or `nameEndsWith`. - in: query name: nameStartsWith schema: description: >- Filter for non-inventory items whose `name` starts with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameEndsWith`. example: ABC type: string description: >- Filter for non-inventory items whose `name` starts with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameEndsWith`. - in: query name: nameEndsWith schema: description: >- Filter for non-inventory items whose `name` ends with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameStartsWith`. example: ABC type: string description: >- Filter for non-inventory items whose `name` ends with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameStartsWith`. - in: query name: nameFrom schema: description: >- Filter for non-inventory items whose `name` is alphabetically greater than or equal to this value. example: A type: string description: >- Filter for non-inventory items whose `name` is alphabetically greater than or equal to this value. - in: query name: nameTo schema: description: >- Filter for non-inventory items whose `name` is alphabetically less than or equal to this value. example: Z type: string description: >- Filter for non-inventory items whose `name` is alphabetically less than or equal to this value. - in: query name: classIds schema: description: >- Filter for non-inventory items of these classes. A class is a way end-users can categorize non-inventory items in QuickBooks. example: - 80000001-1234567890 type: array items: type: string description: >- Filter for non-inventory items of these classes. A class is a way end-users can categorize non-inventory items in QuickBooks. responses: '200': description: Returns a list of non-inventory items. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: objectType: description: The type of object. This value is always `"list"`. example: list type: string const: list url: type: string description: The endpoint URL where this list can be accessed. example: /v1/quickbooks-desktop/non-inventory-items data: type: array items: $ref: '#/components/schemas/qbd_non_inventory_item' description: The array of non-inventory items. nextCursor: anyOf: - type: string - type: 'null' description: >- The `nextCursor` is a pagination token returned in the response when you use the `limit` parameter in your request. To retrieve subsequent pages of results, include this token as the value of the `cursor` request parameter in your following API calls. **NOTE**: The `nextCursor` value remains constant throughout the pagination process for a specific list instance; continue to use the same `nextCursor` token in each request to fetch additional pages. example: 12345678-abcd-abcd-example-1234567890ab remainingCount: anyOf: - type: number - type: 'null' description: The number of objects remaining to be fetched. example: 10 hasMore: type: boolean description: Indicates whether there are more objects to be fetched. required: - objectType - url - data - nextCursor - remainingCount - hasMore additionalProperties: false x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); // Automatically fetches more pages as needed. for await (const nonInventoryItem of conductor.qbd.nonInventoryItems.list({ conductorEndUserId: 'end_usr_1234567abcdefg', })) { console.log(nonInventoryItem.id); } - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) page = conductor.qbd.non_inventory_items.list( conductor_end_user_id="end_usr_1234567abcdefg", ) page = page.data[0] print(page.id) post: summary: Create a non-inventory item description: Creates a new non-inventory item. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. requestBody: required: true content: application/json: schema: type: object properties: name: type: string maxLength: 31 description: >- The case-insensitive name of this non-inventory item. Not guaranteed to be unique because it does not include the names of its hierarchical parent objects like `fullName` does. For example, two non-inventory items could both have the `name` "Printer Ink Cartridge", but they could have unique `fullName` values, such as "Office Supplies:Printer Ink Cartridge" and "Miscellaneous:Printer Ink Cartridge". Maximum length: 31 characters. example: Printer Ink Cartridge barcode: description: The non-inventory item's barcode. type: object properties: value: description: The item's barcode value. example: '012345678905' type: string assignEvenIfUsed: description: >- Indicates whether to assign the barcode even if it is already used. example: false default: false type: boolean allowOverride: description: Indicates whether to allow the barcode to be overridden. example: false default: false type: boolean additionalProperties: false isActive: description: >- Indicates whether this non-inventory item is active. Inactive objects are typically hidden from views and reports in QuickBooks. Defaults to `true`. example: true default: true type: boolean parentId: description: >- The parent non-inventory item one level above this one in the hierarchy. For example, if this non-inventory item has a `fullName` of "Office Supplies:Printer Ink Cartridge", its parent has a `fullName` of "Office Supplies". If this non-inventory item is at the top level, this field will be `null`. example: 80000001-1234567890 type: string maxLength: 36 classId: description: >- The non-inventory item'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. example: 80000001-1234567890 type: string maxLength: 36 sku: description: >- The non-inventory item's stock keeping unit (SKU), which is sometimes the manufacturer's part number. example: MPN-123456 type: string unitOfMeasureSetId: description: >- The unit-of-measure set associated with this non-inventory item, which consists of a base unit and related units. example: 80000001-1234567890 type: string maxLength: 36 salesTaxCodeId: description: >- The default sales-tax code for this non-inventory item, determining whether it is taxable or non-taxable. This can be overridden at the transaction-line level. 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. example: 80000001-1234567890 type: string maxLength: 36 salesOrPurchaseDetails: description: >- Details for non-inventory items that are exclusively sold or exclusively purchased, but not both. This typically applies to non-inventory items (like a purchased office supply that isn't resold) or service items (like consulting services that are sold but not purchased). **IMPORTANT**: You must specify either `salesOrPurchaseDetails` or `salesAndPurchaseDetails` when creating a non-inventory item, but never both because an item cannot have both configurations. type: object properties: description: description: A description of this item. example: Hourly Consulting Service type: string price: description: >- The price at which this item is purchased or sold, represented as a decimal string. example: '19.99' type: string pricePercentage: description: >- The price of this item expressed as a percentage, used instead of `price` when the item's cost is calculated as a percentage of another amount. For example, a service item that costs a percentage of another item's price. example: '10.5' type: string postingAccountId: description: >- The posting account to which transactions involving this item are posted. This could be an income account when selling or an expense account when purchasing. example: 80000001-1234567890 type: string maxLength: 36 required: - postingAccountId additionalProperties: false salesAndPurchaseDetails: description: >- Details for non-inventory items that are both purchased and sold, such as reimbursable expenses or inventory items that are bought from vendors and sold to customers. **IMPORTANT**: You must specify either `salesAndPurchaseDetails` or `salesOrPurchaseDetails` when creating a non-inventory item, but never both because an item cannot have both configurations. type: object properties: salesDescription: description: >- The description of this item that appears on sales forms (e.g., invoices, sales receipts) when sold to customers. example: High-quality steel bolts suitable for construction type: string salesPrice: description: >- The price at which this item is sold to customers, represented as a decimal string. example: '19.99' type: string incomeAccountId: description: >- The income account used to track revenue from sales of this item. example: 80000001-1234567890 type: string maxLength: 36 purchaseDescription: description: >- The description of this item that appears on purchase forms (e.g., checks, bills, item receipts) when it is ordered or bought from vendors. example: Bulk purchase of steel bolts for inventory type: string purchaseCost: description: >- The cost at which this item is purchased from vendors, represented as a decimal string. example: '15.75' type: string purchaseTaxCodeId: description: >- The tax code applied to purchases of this item. Applicable in regions where purchase taxes are used, such as Canada or the UK. example: 80000001-1234567890 type: string maxLength: 36 expenseAccountId: description: >- The expense account used to track costs from purchases of this item. example: 80000001-1234567890 type: string maxLength: 36 preferredVendorId: description: >- The preferred vendor from whom this item is typically purchased. example: 80000001-1234567890 type: string maxLength: 36 required: - incomeAccountId - expenseAccountId additionalProperties: false externalId: type: string format: uuid description: >- 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. **IMPORTANT**: This field must be formatted as a valid GUID; otherwise, QuickBooks will return an error. example: 12345678-abcd-1234-abcd-1234567890ab required: - name additionalProperties: false responses: '200': description: Returns the newly created non-inventory item. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_non_inventory_item' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const nonInventoryItem = await conductor.qbd.nonInventoryItems.create({ name: 'Printer Ink Cartridge', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(nonInventoryItem.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) non_inventory_item = conductor.qbd.non_inventory_items.create( name="Printer Ink Cartridge", conductor_end_user_id="end_usr_1234567abcdefg", ) print(non_inventory_item.id) /quickbooks-desktop/non-inventory-items/{id}: get: summary: Retrieve a non-inventory item description: >- Retrieves a non-inventory item by ID. **IMPORTANT:** If you need to fetch multiple specific non-inventory items 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. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the non-inventory item to retrieve. example: 80000001-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the non-inventory item to retrieve. responses: '200': description: Returns the specified non-inventory item. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_non_inventory_item' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const nonInventoryItem = await conductor.qbd.nonInventoryItems.retrieve('80000001-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(nonInventoryItem.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) non_inventory_item = conductor.qbd.non_inventory_items.retrieve( id="80000001-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(non_inventory_item.id) post: summary: Update a non-inventory item description: >- Updates a non-inventory item. You can modify either `salesOrPurchaseDetails` or `salesAndPurchaseDetails`, but the item must keep the same configuration it was created with. When you change `postingAccount`, `incomeAccount`, or `expenseAccount`, include the matching `updateExistingTransactions...` flag so QuickBooks applies the new account to existing transactions and doesn’t reject the update when historical activity is present. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the non-inventory item to update. example: 80000001-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the non-inventory item to update. requestBody: required: true content: application/json: schema: type: object properties: revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of the non-inventory item 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. example: '1721172183' name: description: >- The case-insensitive name of this non-inventory item. Not guaranteed to be unique because it does not include the names of its hierarchical parent objects like `fullName` does. For example, two non-inventory items could both have the `name` "Printer Ink Cartridge", but they could have unique `fullName` values, such as "Office Supplies:Printer Ink Cartridge" and "Miscellaneous:Printer Ink Cartridge". Maximum length: 31 characters. example: Printer Ink Cartridge type: string maxLength: 31 barcode: description: The non-inventory item's barcode. type: object properties: value: description: The item's barcode value. example: '012345678905' type: string assignEvenIfUsed: description: >- Indicates whether to assign the barcode even if it is already used. example: false default: false type: boolean allowOverride: description: Indicates whether to allow the barcode to be overridden. example: false default: false type: boolean additionalProperties: false isActive: description: >- Indicates whether this non-inventory item is active. Inactive objects are typically hidden from views and reports in QuickBooks. Defaults to `true`. example: true type: boolean classId: description: >- The non-inventory item'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. example: 80000001-1234567890 type: string maxLength: 36 parentId: description: >- The parent non-inventory item one level above this one in the hierarchy. For example, if this non-inventory item has a `fullName` of "Office Supplies:Printer Ink Cartridge", its parent has a `fullName` of "Office Supplies". If this non-inventory item is at the top level, this field will be `null`. example: 80000001-1234567890 type: string maxLength: 36 sku: description: >- The non-inventory item's stock keeping unit (SKU), which is sometimes the manufacturer's part number. example: MPN-123456 type: string unitOfMeasureSetId: description: >- The unit-of-measure set associated with this non-inventory item, which consists of a base unit and related units. example: 80000001-1234567890 type: string maxLength: 36 forceUnitOfMeasureChange: description: >- Indicates whether to allow changing the non-inventory item's unit-of-measure set (using the `unitOfMeasureSetId` field) when the base unit of the new unit-of-measure set does not match that of the currently assigned set. Without setting this field to `true` in this scenario, the request will fail with an error; hence, this field is equivalent to accepting the warning prompt in the QuickBooks UI. NOTE: Changing the base unit requires you to update the item's quantities-on-hand and cost to reflect the new unit; otherwise, these values will be inaccurate. Alternatively, consider creating a new item with the desired unit-of-measure set and deactivating the old item. example: false type: boolean salesTaxCodeId: description: >- The default sales-tax code for this non-inventory item, determining whether it is taxable or non-taxable. This can be overridden at the transaction-line level. 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. example: 80000001-1234567890 type: string maxLength: 36 salesOrPurchaseDetails: description: >- Details for non-inventory items that are exclusively sold or exclusively purchased, but not both. This typically applies to non-inventory items (like a purchased office supply that isn't resold) or service items (like consulting services that are sold but not purchased). **IMPORTANT**: You cannot specify both `salesOrPurchaseDetails` and `salesAndPurchaseDetails` when modifying a non-inventory item because an item cannot have both configurations. type: object properties: description: description: A description of this item. example: Hourly Consulting Service type: string price: description: >- The price at which this item is purchased or sold, represented as a decimal string. example: '19.99' type: string pricePercentage: description: >- The price of this item expressed as a percentage, used instead of `price` when the item's cost is calculated as a percentage of another amount. For example, a service item that costs a percentage of another item's price. example: '10.5' type: string postingAccountId: description: >- The posting account to which transactions involving this item are posted. This could be an income account when selling or an expense account when purchasing. example: 80000001-1234567890 type: string maxLength: 36 updateExistingTransactionsAccount: description: >- When `true`, applies the new account (specified by the `accountId` field) to all existing transactions associated with this item. This updates historical data and should be used with caution. The update will fail if any affected transaction falls within a closed accounting period. If this parameter is not specified, QuickBooks will prompt the user before making any changes. example: false type: boolean additionalProperties: false salesAndPurchaseDetails: description: >- Details for non-inventory items that are both purchased and sold, such as reimbursable expenses or inventory items that are bought from vendors and sold to customers. **IMPORTANT**: You cannot specify both `salesAndPurchaseDetails` and `salesOrPurchaseDetails` when modifying a non-inventory item because an item cannot have both configurations. type: object properties: salesDescription: description: >- The description of this item that appears on sales forms (e.g., invoices, sales receipts) when sold to customers. example: High-quality steel bolts suitable for construction type: string salesPrice: description: >- The price at which this item is sold to customers, represented as a decimal string. example: '19.99' type: string incomeAccountId: description: >- The income account used to track revenue from sales of this item. example: 80000001-1234567890 type: string maxLength: 36 purchaseDescription: description: >- The description of this item that appears on purchase forms (e.g., checks, bills, item receipts) when it is ordered or bought from vendors. example: Bulk purchase of steel bolts for inventory type: string purchaseCost: description: >- The cost at which this item is purchased from vendors, represented as a decimal string. example: '15.75' type: string purchaseTaxCodeId: description: >- The tax code applied to purchases of this item. Applicable in regions where purchase taxes are used, such as Canada or the UK. example: 80000001-1234567890 type: string maxLength: 36 expenseAccountId: description: >- The expense account used to track costs from purchases of this item. example: 80000001-1234567890 type: string maxLength: 36 preferredVendorId: description: >- The preferred vendor from whom this item is typically purchased. example: 80000001-1234567890 type: string maxLength: 36 updateExistingTransactionsIncomeAccount: description: >- When `true`, applies the new income account (specified by the `incomeAccountId` field) to all existing transactions that use this item. This updates historical data and should be used with caution. The update will fail if any affected transaction falls within a closed accounting period. If this parameter is not specified, QuickBooks will prompt the user before making any changes. example: false type: boolean updateExistingTransactionsExpenseAccount: description: >- When `true`, applies the new expense account (specified by the `expenseAccountId` field) to all existing transactions that use this item. This updates historical data and should be used with caution. The update will fail if any affected transaction falls within a closed accounting period. If this parameter is not specified, QuickBooks will prompt the user before making any changes. example: false type: boolean additionalProperties: false required: - revisionNumber additionalProperties: false responses: '200': description: Returns the updated non-inventory item. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_non_inventory_item' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const nonInventoryItem = await conductor.qbd.nonInventoryItems.update('80000001-1234567890', { revisionNumber: '1721172183', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(nonInventoryItem.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) non_inventory_item = conductor.qbd.non_inventory_items.update( id="80000001-1234567890", revision_number="1721172183", conductor_end_user_id="end_usr_1234567abcdefg", ) print(non_inventory_item.id) /quickbooks-desktop/other-charge-items: get: summary: List all other charge items description: >- Returns a list of other charge items. Use the `cursor` parameter to paginate through the results. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: query name: ids schema: description: >- Filter for specific other charge items 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: - 80000001-1234567890 type: array items: type: string description: >- Filter for specific other charge items 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. - in: query name: fullNames schema: description: >- Filter for specific other charge items by their full-name(s), case-insensitive. Like `id`, `fullName` is a unique identifier for an other charge item, formed by by combining the names of its parent objects with its own `name`, separated by colons. For example, if an other charge item is under "Shipping Charges" and has the `name` "Overnight Delivery", its `fullName` would be "Shipping Charges:Overnight Delivery". **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: - Shipping Charges:Overnight Delivery type: array items: type: string description: >- Filter for specific other charge items by their full-name(s), case-insensitive. Like `id`, `fullName` is a unique identifier for an other charge item, formed by by combining the names of its parent objects with its own `name`, separated by colons. For example, if an other charge item is under "Shipping Charges" and has the `name` "Overnight Delivery", its `fullName` would be "Shipping Charges:Overnight Delivery". **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. - in: query name: limit schema: default: 150 description: >- 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. example: 150 type: integer minimum: 1 maximum: 150 description: >- 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. - in: query name: cursor schema: description: >- 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 type: string description: >- 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. - in: query name: status schema: description: Filter for other charge items that are active, inactive, or both. example: active type: string enum: - active - all - inactive default: active description: Filter for other charge items that are active, inactive, or both. - in: query name: updatedAfter schema: description: >- Filter for other charge items 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. example: 2025-01-01T12:34:56.000Z type: string description: >- Filter for other charge items 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. - in: query name: updatedBefore schema: description: >- Filter for other charge items 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. example: 2025-02-01T12:34:56.000Z type: string description: >- Filter for other charge items 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. - in: query name: nameContains schema: description: >- Filter for other charge items whose `name` contains this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameStartsWith` or `nameEndsWith`. example: ABC type: string description: >- Filter for other charge items whose `name` contains this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameStartsWith` or `nameEndsWith`. - in: query name: nameStartsWith schema: description: >- Filter for other charge items whose `name` starts with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameEndsWith`. example: ABC type: string description: >- Filter for other charge items whose `name` starts with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameEndsWith`. - in: query name: nameEndsWith schema: description: >- Filter for other charge items whose `name` ends with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameStartsWith`. example: ABC type: string description: >- Filter for other charge items whose `name` ends with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameStartsWith`. - in: query name: nameFrom schema: description: >- Filter for other charge items whose `name` is alphabetically greater than or equal to this value. example: A type: string description: >- Filter for other charge items whose `name` is alphabetically greater than or equal to this value. - in: query name: nameTo schema: description: >- Filter for other charge items whose `name` is alphabetically less than or equal to this value. example: Z type: string description: >- Filter for other charge items whose `name` is alphabetically less than or equal to this value. - in: query name: classIds schema: description: >- Filter for other charge items of these classes. A class is a way end-users can categorize other charge items in QuickBooks. example: - 80000001-1234567890 type: array items: type: string description: >- Filter for other charge items of these classes. A class is a way end-users can categorize other charge items in QuickBooks. responses: '200': description: Returns a list of other charge items. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: objectType: description: The type of object. This value is always `"list"`. example: list type: string const: list url: type: string description: The endpoint URL where this list can be accessed. example: /v1/quickbooks-desktop/other-charge-items data: type: array items: $ref: '#/components/schemas/qbd_other_charge_item' description: The array of other charge items. nextCursor: anyOf: - type: string - type: 'null' description: >- The `nextCursor` is a pagination token returned in the response when you use the `limit` parameter in your request. To retrieve subsequent pages of results, include this token as the value of the `cursor` request parameter in your following API calls. **NOTE**: The `nextCursor` value remains constant throughout the pagination process for a specific list instance; continue to use the same `nextCursor` token in each request to fetch additional pages. example: 12345678-abcd-abcd-example-1234567890ab remainingCount: anyOf: - type: number - type: 'null' description: The number of objects remaining to be fetched. example: 10 hasMore: type: boolean description: Indicates whether there are more objects to be fetched. required: - objectType - url - data - nextCursor - remainingCount - hasMore additionalProperties: false x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); // Automatically fetches more pages as needed. for await (const otherChargeItem of conductor.qbd.otherChargeItems.list({ conductorEndUserId: 'end_usr_1234567abcdefg', })) { console.log(otherChargeItem.id); } - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) page = conductor.qbd.other_charge_items.list( conductor_end_user_id="end_usr_1234567abcdefg", ) page = page.data[0] print(page.id) post: summary: Create an other charge item description: Creates a new other charge item. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. requestBody: required: true content: application/json: schema: type: object properties: name: type: string maxLength: 31 description: >- The case-insensitive name of this other charge item. Not guaranteed to be unique because it does not include the names of its hierarchical parent objects like `fullName` does. For example, two other charge items could both have the `name` "Overnight Delivery", but they could have unique `fullName` values, such as "Shipping Charges:Overnight Delivery" and "Misc Fees:Overnight Delivery". Maximum length: 31 characters. example: Overnight Delivery barcode: description: The other charge item's barcode. type: object properties: value: description: The item's barcode value. example: '012345678905' type: string assignEvenIfUsed: description: >- Indicates whether to assign the barcode even if it is already used. example: false default: false type: boolean allowOverride: description: Indicates whether to allow the barcode to be overridden. example: false default: false type: boolean additionalProperties: false isActive: description: >- Indicates whether this other charge item is active. Inactive objects are typically hidden from views and reports in QuickBooks. Defaults to `true`. example: true default: true type: boolean classId: description: >- The other charge item'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. example: 80000001-1234567890 type: string maxLength: 36 parentId: description: >- The parent other charge item one level above this one in the hierarchy. For example, if this other charge item has a `fullName` of "Shipping Charges:Overnight Delivery", its parent has a `fullName` of "Shipping Charges". If this other charge item is at the top level, this field will be `null`. example: 80000001-1234567890 type: string maxLength: 36 salesTaxCodeId: description: >- The default sales-tax code for this other charge item, determining whether it is taxable or non-taxable. This can be overridden at the transaction-line level. 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. example: 80000001-1234567890 type: string maxLength: 36 salesOrPurchaseDetails: description: >- Details for other charge items that are exclusively sold or exclusively purchased, but not both. This typically applies to non-inventory items (like a purchased office supply that isn't resold) or service items (like consulting services that are sold but not purchased). **IMPORTANT**: You must specify either `salesOrPurchaseDetails` or `salesAndPurchaseDetails` when creating an other charge item, but never both because an item cannot have both configurations. type: object properties: description: description: A description of this item. example: Hourly Consulting Service type: string price: description: >- The price at which this item is purchased or sold, represented as a decimal string. example: '19.99' type: string pricePercentage: description: >- The price of this item expressed as a percentage, used instead of `price` when the item's cost is calculated as a percentage of another amount. For example, a service item that costs a percentage of another item's price. example: '10.5' type: string postingAccountId: description: >- The posting account to which transactions involving this item are posted. This could be an income account when selling or an expense account when purchasing. example: 80000001-1234567890 type: string maxLength: 36 required: - postingAccountId additionalProperties: false salesAndPurchaseDetails: description: >- Details for other charge items that are both purchased and sold, such as reimbursable expenses or inventory items that are bought from vendors and sold to customers. **IMPORTANT**: You must specify either `salesAndPurchaseDetails` or `salesOrPurchaseDetails` when creating an other charge item, but never both because an item cannot have both configurations. type: object properties: salesDescription: description: >- The description of this item that appears on sales forms (e.g., invoices, sales receipts) when sold to customers. example: High-quality steel bolts suitable for construction type: string salesPrice: description: >- The price at which this item is sold to customers, represented as a decimal string. example: '19.99' type: string incomeAccountId: description: >- The income account used to track revenue from sales of this item. example: 80000001-1234567890 type: string maxLength: 36 purchaseDescription: description: >- The description of this item that appears on purchase forms (e.g., checks, bills, item receipts) when it is ordered or bought from vendors. example: Bulk purchase of steel bolts for inventory type: string purchaseCost: description: >- The cost at which this item is purchased from vendors, represented as a decimal string. example: '15.75' type: string purchaseTaxCodeId: description: >- The tax code applied to purchases of this item. Applicable in regions where purchase taxes are used, such as Canada or the UK. example: 80000001-1234567890 type: string maxLength: 36 expenseAccountId: description: >- The expense account used to track costs from purchases of this item. example: 80000001-1234567890 type: string maxLength: 36 preferredVendorId: description: >- The preferred vendor from whom this item is typically purchased. example: 80000001-1234567890 type: string maxLength: 36 required: - incomeAccountId - expenseAccountId additionalProperties: false externalId: type: string format: uuid description: >- 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. **IMPORTANT**: This field must be formatted as a valid GUID; otherwise, QuickBooks will return an error. example: 12345678-abcd-1234-abcd-1234567890ab required: - name additionalProperties: false responses: '200': description: Returns the newly created other charge item. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_other_charge_item' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const otherChargeItem = await conductor.qbd.otherChargeItems.create({ name: 'Overnight Delivery', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(otherChargeItem.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) other_charge_item = conductor.qbd.other_charge_items.create( name="Overnight Delivery", conductor_end_user_id="end_usr_1234567abcdefg", ) print(other_charge_item.id) /quickbooks-desktop/other-charge-items/{id}: get: summary: Retrieve an other charge item description: >- Retrieves an other charge item by ID. **IMPORTANT:** If you need to fetch multiple specific other charge items 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. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the other charge item to retrieve. example: 80000001-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the other charge item to retrieve. responses: '200': description: Returns the specified other charge item. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_other_charge_item' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const otherChargeItem = await conductor.qbd.otherChargeItems.retrieve('80000001-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(otherChargeItem.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) other_charge_item = conductor.qbd.other_charge_items.retrieve( id="80000001-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(other_charge_item.id) post: summary: Update an other charge item description: Updates an existing other charge item. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the other charge item to update. example: 80000001-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the other charge item to update. requestBody: required: true content: application/json: schema: type: object properties: revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of the other charge item 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. example: '1721172183' name: description: >- The case-insensitive name of this other charge item. Not guaranteed to be unique because it does not include the names of its hierarchical parent objects like `fullName` does. For example, two other charge items could both have the `name` "Overnight Delivery", but they could have unique `fullName` values, such as "Shipping Charges:Overnight Delivery" and "Misc Fees:Overnight Delivery". Maximum length: 31 characters. example: Overnight Delivery type: string maxLength: 31 barcode: description: The other charge item's barcode. type: object properties: value: description: The item's barcode value. example: '012345678905' type: string assignEvenIfUsed: description: >- Indicates whether to assign the barcode even if it is already used. example: false default: false type: boolean allowOverride: description: Indicates whether to allow the barcode to be overridden. example: false default: false type: boolean additionalProperties: false isActive: description: >- Indicates whether this other charge item is active. Inactive objects are typically hidden from views and reports in QuickBooks. Defaults to `true`. example: true type: boolean classId: description: >- The other charge item'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. example: 80000001-1234567890 type: string maxLength: 36 parentId: description: >- The parent other charge item one level above this one in the hierarchy. For example, if this other charge item has a `fullName` of "Shipping Charges:Overnight Delivery", its parent has a `fullName` of "Shipping Charges". If this other charge item is at the top level, this field will be `null`. example: 80000001-1234567890 type: string maxLength: 36 salesTaxCodeId: description: >- The default sales-tax code for this other charge item, determining whether it is taxable or non-taxable. This can be overridden at the transaction-line level. 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. example: 80000001-1234567890 type: string maxLength: 36 salesOrPurchaseDetails: description: >- Details for other charge items that are exclusively sold or exclusively purchased, but not both. This typically applies to non-inventory items (like a purchased office supply that isn't resold) or service items (like consulting services that are sold but not purchased). **IMPORTANT**: You cannot specify both `salesOrPurchaseDetails` and `salesAndPurchaseDetails` when modifying an other charge item because an item cannot have both configurations. type: object properties: description: description: A description of this item. example: Hourly Consulting Service type: string price: description: >- The price at which this item is purchased or sold, represented as a decimal string. example: '19.99' type: string pricePercentage: description: >- The price of this item expressed as a percentage, used instead of `price` when the item's cost is calculated as a percentage of another amount. For example, a service item that costs a percentage of another item's price. example: '10.5' type: string postingAccountId: description: >- The posting account to which transactions involving this item are posted. This could be an income account when selling or an expense account when purchasing. example: 80000001-1234567890 type: string maxLength: 36 updateExistingTransactionsAccount: description: >- When `true`, applies the new account (specified by the `accountId` field) to all existing transactions associated with this item. This updates historical data and should be used with caution. The update will fail if any affected transaction falls within a closed accounting period. If this parameter is not specified, QuickBooks will prompt the user before making any changes. example: false type: boolean additionalProperties: false salesAndPurchaseDetails: description: >- Details for other charge items that are both purchased and sold, such as reimbursable expenses or inventory items that are bought from vendors and sold to customers. **IMPORTANT**: You cannot specify both `salesAndPurchaseDetails` and `salesOrPurchaseDetails` when modifying an other charge item because an item cannot have both configurations. type: object properties: salesDescription: description: >- The description of this item that appears on sales forms (e.g., invoices, sales receipts) when sold to customers. example: High-quality steel bolts suitable for construction type: string salesPrice: description: >- The price at which this item is sold to customers, represented as a decimal string. example: '19.99' type: string incomeAccountId: description: >- The income account used to track revenue from sales of this item. example: 80000001-1234567890 type: string maxLength: 36 purchaseDescription: description: >- The description of this item that appears on purchase forms (e.g., checks, bills, item receipts) when it is ordered or bought from vendors. example: Bulk purchase of steel bolts for inventory type: string purchaseCost: description: >- The cost at which this item is purchased from vendors, represented as a decimal string. example: '15.75' type: string purchaseTaxCodeId: description: >- The tax code applied to purchases of this item. Applicable in regions where purchase taxes are used, such as Canada or the UK. example: 80000001-1234567890 type: string maxLength: 36 expenseAccountId: description: >- The expense account used to track costs from purchases of this item. example: 80000001-1234567890 type: string maxLength: 36 preferredVendorId: description: >- The preferred vendor from whom this item is typically purchased. example: 80000001-1234567890 type: string maxLength: 36 updateExistingTransactionsIncomeAccount: description: >- When `true`, applies the new income account (specified by the `incomeAccountId` field) to all existing transactions that use this item. This updates historical data and should be used with caution. The update will fail if any affected transaction falls within a closed accounting period. If this parameter is not specified, QuickBooks will prompt the user before making any changes. example: false type: boolean updateExistingTransactionsExpenseAccount: description: >- When `true`, applies the new expense account (specified by the `expenseAccountId` field) to all existing transactions that use this item. This updates historical data and should be used with caution. The update will fail if any affected transaction falls within a closed accounting period. If this parameter is not specified, QuickBooks will prompt the user before making any changes. example: false type: boolean additionalProperties: false required: - revisionNumber additionalProperties: false responses: '200': description: Returns the updated other charge item. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_other_charge_item' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const otherChargeItem = await conductor.qbd.otherChargeItems.update('80000001-1234567890', { revisionNumber: '1721172183', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(otherChargeItem.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) other_charge_item = conductor.qbd.other_charge_items.update( id="80000001-1234567890", revision_number="1721172183", conductor_end_user_id="end_usr_1234567abcdefg", ) print(other_charge_item.id) /quickbooks-desktop/other-names: get: summary: List all other-names description: >- Returns a list of other-names. **NOTE:** QuickBooks Desktop does not support pagination for other-names; hence, there is no `cursor` parameter. Users typically have few other-names. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: query name: ids schema: description: >- Filter for specific other-names 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: - 80000001-1234567890 type: array items: type: string description: >- Filter for specific other-names 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. - in: query name: names schema: description: >- Filter for specific other-names by their name(s), case-insensitive. Like `id`, `name` is a unique identifier for an other-name. **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: - John Doe type: array items: type: string description: >- Filter for specific other-names by their name(s), case-insensitive. Like `id`, `name` is a unique identifier for an other-name. **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. - in: query name: limit schema: description: >- The maximum number of objects to return. **IMPORTANT**: QuickBooks Desktop does not support cursor-based pagination for other-names. 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 other-names without limit, unlike paginated endpoints which default to 150 records. This is acceptable because other-names typically have low record counts. example: 10 type: integer minimum: 1 description: >- The maximum number of objects to return. **IMPORTANT**: QuickBooks Desktop does not support cursor-based pagination for other-names. 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 other-names without limit, unlike paginated endpoints which default to 150 records. This is acceptable because other-names typically have low record counts. - in: query name: status schema: description: Filter for other-names that are active, inactive, or both. example: active type: string enum: - active - all - inactive default: active description: Filter for other-names that are active, inactive, or both. - in: query name: updatedAfter schema: description: >- Filter for other-names 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. example: 2025-01-01T12:34:56.000Z type: string description: >- Filter for other-names 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. - in: query name: updatedBefore schema: description: >- Filter for other-names 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. example: 2025-02-01T12:34:56.000Z type: string description: >- Filter for other-names 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. - in: query name: nameContains schema: description: >- Filter for other-names whose `name` contains this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameStartsWith` or `nameEndsWith`. example: ABC type: string description: >- Filter for other-names whose `name` contains this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameStartsWith` or `nameEndsWith`. - in: query name: nameStartsWith schema: description: >- Filter for other-names whose `name` starts with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameEndsWith`. example: ABC type: string description: >- Filter for other-names whose `name` starts with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameEndsWith`. - in: query name: nameEndsWith schema: description: >- Filter for other-names whose `name` ends with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameStartsWith`. example: ABC type: string description: >- Filter for other-names whose `name` ends with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameStartsWith`. - in: query name: nameFrom schema: description: >- Filter for other-names whose `name` is alphabetically greater than or equal to this value. example: A type: string description: >- Filter for other-names whose `name` is alphabetically greater than or equal to this value. - in: query name: nameTo schema: description: >- Filter for other-names whose `name` is alphabetically less than or equal to this value. example: Z type: string description: >- Filter for other-names whose `name` is alphabetically less than or equal to this value. responses: '200': description: Returns a list of other-names. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: objectType: description: The type of object. This value is always `"list"`. example: list type: string const: list url: type: string description: The endpoint URL where this list can be accessed. example: /v1/quickbooks-desktop/other-names data: type: array items: $ref: '#/components/schemas/qbd_other_name' description: The array of other-names. required: - objectType - url - data additionalProperties: false x-codeSamples: - lang: JavaScript source: |- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const otherNames = await conductor.qbd.otherNames.list({ conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(otherNames.data); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) other_names = conductor.qbd.other_names.list( conductor_end_user_id="end_usr_1234567abcdefg", ) print(other_names.data) post: summary: Create an other-name description: Creates a new other-name. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. requestBody: required: true content: application/json: schema: type: object properties: name: type: string maxLength: 31 description: >- The case-insensitive unique name of this other-name, unique across all other-names. **NOTE**: Other-names do not have a `fullName` field because they are not hierarchical objects, which is why `name` is unique for them but not for objects that have parents. Maximum length: 31 characters. example: John Doe isActive: description: >- Indicates whether this other-name is active. Inactive objects are typically hidden from views and reports in QuickBooks. Defaults to `true`. example: true default: true type: boolean companyName: description: >- The name of the company associated with this other-name. This name is used on invoices, checks, and other forms. Maximum length: 41 characters. example: Acme Corporation type: string maxLength: 41 salutation: description: >- The formal salutation title that precedes the name of the contact person for this other-name, such as "Mr.", "Ms.", or "Dr.". example: Dr. type: string firstName: description: |- The first name of the contact person for this other-name. Maximum length: 25 characters. example: John type: string maxLength: 25 middleName: description: |- The middle name of the contact person for this other-name. Maximum length: 5 characters. example: A. type: string maxLength: 5 lastName: description: |- The last name of the contact person for this other-name. Maximum length: 25 characters. example: Doe type: string maxLength: 25 address: description: The other-name's address. type: object properties: line1: description: >- The first line of the address (e.g., street, PO Box, or company name). Maximum length: 41 characters. example: Conductor Labs Inc. type: string maxLength: 41 line2: description: >- The second line of the address, if needed (e.g., apartment, suite, unit, or building). Maximum length: 41 characters. example: 540 Market St. type: string maxLength: 41 line3: description: |- The third line of the address, if needed. Maximum length: 41 characters. example: Suite 100 type: string maxLength: 41 line4: description: |- The fourth line of the address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 line5: description: |- The fifth line of the address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 city: description: >- The city, district, suburb, town, or village name of the address. Maximum length: 31 characters. example: San Francisco type: string maxLength: 31 state: description: >- The state, county, province, or region name of the address. Maximum length: 21 characters. example: CA type: string maxLength: 21 postalCode: description: |- The postal code or ZIP code of the address. Maximum length: 13 characters. example: '94110' type: string maxLength: 13 country: description: The country name of the address. example: United States type: string note: description: >- A note written at the bottom of the address in the form in which it appears, such as the invoice form. example: Conductor HQ type: string additionalProperties: false phone: description: |- The other-name's primary telephone number. Maximum length: 21 characters. example: +1-555-123-4567 type: string maxLength: 21 alternatePhone: description: |- The other-name's alternate telephone number. Maximum length: 21 characters. example: +1-555-987-6543 type: string maxLength: 21 fax: description: |- The other-name's fax number. Maximum length: 21 characters. example: +1-555-555-1212 type: string maxLength: 21 email: description: The other-name's email address. example: other-name@example.com type: string contact: description: The name of the primary contact person for this other-name. example: Jane Smith type: string alternateContact: description: The name of a alternate contact person for this other-name. example: Bob Johnson type: string accountNumber: description: >- The other-name's account number, which appears in the QuickBooks chart of accounts, reports, and graphs. Note that if the "Use Account Numbers" preference is turned off in QuickBooks, the account number may not be visible in the user interface, but it can still be set and retrieved through the API. example: '1010' type: string note: description: A note or comment about this other-name. example: This employee is a key employee. type: string externalId: type: string format: uuid description: >- 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. **IMPORTANT**: This field must be formatted as a valid GUID; otherwise, QuickBooks will return an error. example: 12345678-abcd-1234-abcd-1234567890ab required: - name additionalProperties: false responses: '200': description: Returns the newly created other-name. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_other_name' x-codeSamples: - lang: JavaScript source: |- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const otherName = await conductor.qbd.otherNames.create({ name: 'John Doe', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(otherName.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) other_name = conductor.qbd.other_names.create( name="John Doe", conductor_end_user_id="end_usr_1234567abcdefg", ) print(other_name.id) /quickbooks-desktop/other-names/{id}: get: summary: Retrieve an other-name description: >- Retrieves an other-name by ID. **IMPORTANT:** If you need to fetch multiple specific other-names 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. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the other-name to retrieve. example: 80000001-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the other-name to retrieve. responses: '200': description: Returns the specified other-name. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_other_name' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const otherName = await conductor.qbd.otherNames.retrieve('80000001-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(otherName.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) other_name = conductor.qbd.other_names.retrieve( id="80000001-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(other_name.id) post: summary: Update an other-name description: Updates an existing other-name. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the other-name to update. example: 80000001-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the other-name to update. requestBody: required: true content: application/json: schema: type: object properties: revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of the other-name 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. example: '1721172183' name: description: >- The case-insensitive unique name of this other-name, unique across all other-names. **NOTE**: Other-names do not have a `fullName` field because they are not hierarchical objects, which is why `name` is unique for them but not for objects that have parents. Maximum length: 31 characters. example: John Doe type: string maxLength: 31 isActive: description: >- Indicates whether this other-name is active. Inactive objects are typically hidden from views and reports in QuickBooks. Defaults to `true`. example: true type: boolean companyName: description: >- The name of the company associated with this other-name. This name is used on invoices, checks, and other forms. Maximum length: 41 characters. example: Acme Corporation type: string maxLength: 41 salutation: description: >- The formal salutation title that precedes the name of the contact person for this other-name, such as "Mr.", "Ms.", or "Dr.". example: Dr. type: string firstName: description: |- The first name of the contact person for this other-name. Maximum length: 25 characters. example: John type: string maxLength: 25 middleName: description: |- The middle name of the contact person for this other-name. Maximum length: 5 characters. example: A. type: string maxLength: 5 lastName: description: |- The last name of the contact person for this other-name. Maximum length: 25 characters. example: Doe type: string maxLength: 25 address: description: The other-name's address. type: object properties: line1: description: >- The first line of the address (e.g., street, PO Box, or company name). Maximum length: 41 characters. example: Conductor Labs Inc. type: string maxLength: 41 line2: description: >- The second line of the address, if needed (e.g., apartment, suite, unit, or building). Maximum length: 41 characters. example: 540 Market St. type: string maxLength: 41 line3: description: |- The third line of the address, if needed. Maximum length: 41 characters. example: Suite 100 type: string maxLength: 41 line4: description: |- The fourth line of the address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 line5: description: |- The fifth line of the address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 city: description: >- The city, district, suburb, town, or village name of the address. Maximum length: 31 characters. example: San Francisco type: string maxLength: 31 state: description: >- The state, county, province, or region name of the address. Maximum length: 21 characters. example: CA type: string maxLength: 21 postalCode: description: |- The postal code or ZIP code of the address. Maximum length: 13 characters. example: '94110' type: string maxLength: 13 country: description: The country name of the address. example: United States type: string note: description: >- A note written at the bottom of the address in the form in which it appears, such as the invoice form. example: Conductor HQ type: string additionalProperties: false phone: description: |- The other-name's primary telephone number. Maximum length: 21 characters. example: +1-555-123-4567 type: string maxLength: 21 alternatePhone: description: |- The other-name's alternate telephone number. Maximum length: 21 characters. example: +1-555-987-6543 type: string maxLength: 21 fax: description: |- The other-name's fax number. Maximum length: 21 characters. example: +1-555-555-1212 type: string maxLength: 21 email: description: The other-name's email address. example: other-name@example.com type: string contact: description: The name of the primary contact person for this other-name. example: Jane Smith type: string alternateContact: description: The name of a alternate contact person for this other-name. example: Bob Johnson type: string accountNumber: description: >- The other-name's account number, which appears in the QuickBooks chart of accounts, reports, and graphs. Note that if the "Use Account Numbers" preference is turned off in QuickBooks, the account number may not be visible in the user interface, but it can still be set and retrieved through the API. example: '1010' type: string note: description: A note or comment about this other-name. example: This employee is a key employee. type: string required: - revisionNumber additionalProperties: false responses: '200': description: Returns the updated other-name. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_other_name' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const otherName = await conductor.qbd.otherNames.update('80000001-1234567890', { revisionNumber: '1721172183', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(otherName.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) other_name = conductor.qbd.other_names.update( id="80000001-1234567890", revision_number="1721172183", conductor_end_user_id="end_usr_1234567abcdefg", ) print(other_name.id) /quickbooks-desktop/payment-methods: get: summary: List all payment methods description: >- Returns a list of payment methods. **NOTE:** QuickBooks Desktop does not support pagination for payment methods; hence, there is no `cursor` parameter. Users typically have few payment methods. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: query name: ids schema: description: >- Filter for specific payment methods 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: - 80000001-1234567890 type: array items: type: string description: >- Filter for specific payment methods 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. - in: query name: names schema: description: >- Filter for specific payment methods by their name(s), case-insensitive. Like `id`, `name` is a unique identifier for a payment method. **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: - Cash type: array items: type: string description: >- Filter for specific payment methods by their name(s), case-insensitive. Like `id`, `name` is a unique identifier for a payment method. **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. - in: query name: limit schema: description: >- The maximum number of objects to return. **IMPORTANT**: QuickBooks Desktop does not support cursor-based pagination for payment methods. 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 payment methods without limit, unlike paginated endpoints which default to 150 records. This is acceptable because payment methods typically have low record counts. example: 10 type: integer minimum: 1 description: >- The maximum number of objects to return. **IMPORTANT**: QuickBooks Desktop does not support cursor-based pagination for payment methods. 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 payment methods without limit, unlike paginated endpoints which default to 150 records. This is acceptable because payment methods typically have low record counts. - in: query name: status schema: description: Filter for payment methods that are active, inactive, or both. example: active type: string enum: - active - all - inactive default: active description: Filter for payment methods that are active, inactive, or both. - in: query name: updatedAfter schema: description: >- Filter for payment methods 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. example: 2025-01-01T12:34:56.000Z type: string description: >- Filter for payment methods 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. - in: query name: updatedBefore schema: description: >- Filter for payment methods 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. example: 2025-02-01T12:34:56.000Z type: string description: >- Filter for payment methods 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. - in: query name: nameContains schema: description: >- Filter for payment methods whose `name` contains this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameStartsWith` or `nameEndsWith`. example: ABC type: string description: >- Filter for payment methods whose `name` contains this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameStartsWith` or `nameEndsWith`. - in: query name: nameStartsWith schema: description: >- Filter for payment methods whose `name` starts with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameEndsWith`. example: ABC type: string description: >- Filter for payment methods whose `name` starts with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameEndsWith`. - in: query name: nameEndsWith schema: description: >- Filter for payment methods whose `name` ends with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameStartsWith`. example: ABC type: string description: >- Filter for payment methods whose `name` ends with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameStartsWith`. - in: query name: nameFrom schema: description: >- Filter for payment methods whose `name` is alphabetically greater than or equal to this value. example: A type: string description: >- Filter for payment methods whose `name` is alphabetically greater than or equal to this value. - in: query name: nameTo schema: description: >- Filter for payment methods whose `name` is alphabetically less than or equal to this value. example: Z type: string description: >- Filter for payment methods whose `name` is alphabetically less than or equal to this value. - in: query name: paymentMethodType schema: description: Filter for payment methods of this type. example: cash type: string enum: - american_express - cash - check - debit_card - discover - e_check - gift_card - master_card - other - other_credit_card - visa description: Filter for payment methods of this type. responses: '200': description: Returns a list of payment methods. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: objectType: description: The type of object. This value is always `"list"`. example: list type: string const: list url: type: string description: The endpoint URL where this list can be accessed. example: /v1/quickbooks-desktop/payment-methods data: type: array items: $ref: '#/components/schemas/qbd_payment_method' description: The array of payment methods. required: - objectType - url - data additionalProperties: false x-codeSamples: - lang: JavaScript source: |- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const paymentMethods = await conductor.qbd.paymentMethods.list({ conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(paymentMethods.data); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) payment_methods = conductor.qbd.payment_methods.list( conductor_end_user_id="end_usr_1234567abcdefg", ) print(payment_methods.data) post: summary: Create a payment method description: Creates a new payment method. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. requestBody: required: true content: application/json: schema: type: object properties: name: type: string maxLength: 31 description: >- The case-insensitive unique name of this payment method, unique across all payment methods. **NOTE**: Payment methods do not have a `fullName` field because they are not hierarchical objects, which is why `name` is unique for them but not for objects that have parents. Maximum length: 31 characters. example: Cash isActive: description: >- Indicates whether this payment method is active. Inactive objects are typically hidden from views and reports in QuickBooks. Defaults to `true`. example: true default: true type: boolean paymentMethodType: description: This payment method's type. example: cash type: string enum: - american_express - cash - check - debit_card - discover - e_check - gift_card - master_card - other - other_credit_card - visa required: - name - paymentMethodType additionalProperties: false responses: '200': description: Returns the newly created payment method. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_payment_method' x-codeSamples: - lang: JavaScript source: |- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const paymentMethod = await conductor.qbd.paymentMethods.create({ name: 'Cash', paymentMethodType: 'cash', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(paymentMethod.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) payment_method = conductor.qbd.payment_methods.create( name="Cash", payment_method_type="cash", conductor_end_user_id="end_usr_1234567abcdefg", ) print(payment_method.id) /quickbooks-desktop/payment-methods/{id}: get: summary: Retrieve a payment method description: >- Retrieves a payment method by ID. **IMPORTANT:** If you need to fetch multiple specific payment methods 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. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the payment method to retrieve. example: 80000001-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the payment method to retrieve. responses: '200': description: Returns the specified payment method. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_payment_method' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const paymentMethod = await conductor.qbd.paymentMethods.retrieve('80000001-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(paymentMethod.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) payment_method = conductor.qbd.payment_methods.retrieve( id="80000001-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(payment_method.id) /quickbooks-desktop/payments-to-deposit: get: summary: List all payments to deposit description: >- Lists received customer payments that are currently available to include in a QuickBooks Desktop deposit. Use each result's `paymentTransactionId` and, when present, `paymentTransactionLineId` as the corresponding fields on a deposit line. **NOTE:** QuickBooks Desktop does not support pagination for payments to deposit; hence, there is no `cursor` parameter. Users typically have few payments to deposit. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. responses: '200': description: Returns a list of payments to deposit. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: objectType: description: The type of object. This value is always `"list"`. example: list type: string const: list url: type: string description: The endpoint URL where this list can be accessed. example: /v1/quickbooks-desktop/payments-to-deposit data: type: array items: $ref: '#/components/schemas/qbd_payment_to_deposit' description: The array of payments to deposit. required: - objectType - url - data additionalProperties: false x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const paymentsToDeposits = await conductor.qbd.paymentsToDeposit.list({ conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(paymentsToDeposits.data); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) payments_to_deposits = conductor.qbd.payments_to_deposit.list( conductor_end_user_id="end_usr_1234567abcdefg", ) print(payments_to_deposits.data) /quickbooks-desktop/payroll-wage-items: get: summary: List all payroll wage items description: >- Returns a list of payroll wage items. Use the `cursor` parameter to paginate through the results. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: query name: ids schema: description: >- Filter for specific payroll wage items 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: - 80000001-1234567890 type: array items: type: string description: >- Filter for specific payroll wage items 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. - in: query name: names schema: description: >- Filter for specific payroll wage items by their name(s), case-insensitive. Like `id`, `name` is a unique identifier for a payroll wage item. **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: - Regular Pay type: array items: type: string description: >- Filter for specific payroll wage items by their name(s), case-insensitive. Like `id`, `name` is a unique identifier for a payroll wage item. **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. - in: query name: limit schema: default: 150 description: >- 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. example: 150 type: integer minimum: 1 maximum: 150 description: >- 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. - in: query name: cursor schema: description: >- 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 type: string description: >- 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. - in: query name: status schema: description: Filter for payroll wage items that are active, inactive, or both. example: active type: string enum: - active - all - inactive default: active description: Filter for payroll wage items that are active, inactive, or both. - in: query name: updatedAfter schema: description: >- Filter for payroll wage items 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. example: 2025-01-01T12:34:56.000Z type: string description: >- Filter for payroll wage items 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. - in: query name: updatedBefore schema: description: >- Filter for payroll wage items 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. example: 2025-02-01T12:34:56.000Z type: string description: >- Filter for payroll wage items 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. - in: query name: nameContains schema: description: >- Filter for payroll wage items whose `name` contains this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameStartsWith` or `nameEndsWith`. example: ABC type: string description: >- Filter for payroll wage items whose `name` contains this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameStartsWith` or `nameEndsWith`. - in: query name: nameStartsWith schema: description: >- Filter for payroll wage items whose `name` starts with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameEndsWith`. example: ABC type: string description: >- Filter for payroll wage items whose `name` starts with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameEndsWith`. - in: query name: nameEndsWith schema: description: >- Filter for payroll wage items whose `name` ends with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameStartsWith`. example: ABC type: string description: >- Filter for payroll wage items whose `name` ends with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameStartsWith`. - in: query name: nameFrom schema: description: >- Filter for payroll wage items whose `name` is alphabetically greater than or equal to this value. example: A type: string description: >- Filter for payroll wage items whose `name` is alphabetically greater than or equal to this value. - in: query name: nameTo schema: description: >- Filter for payroll wage items whose `name` is alphabetically less than or equal to this value. example: Z type: string description: >- Filter for payroll wage items whose `name` is alphabetically less than or equal to this value. responses: '200': description: Returns a list of payroll wage items. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: objectType: description: The type of object. This value is always `"list"`. example: list type: string const: list url: type: string description: The endpoint URL where this list can be accessed. example: /v1/quickbooks-desktop/payroll-wage-items data: type: array items: $ref: '#/components/schemas/qbd_payroll_wage_item' description: The array of payroll wage items. nextCursor: anyOf: - type: string - type: 'null' description: >- The `nextCursor` is a pagination token returned in the response when you use the `limit` parameter in your request. To retrieve subsequent pages of results, include this token as the value of the `cursor` request parameter in your following API calls. **NOTE**: The `nextCursor` value remains constant throughout the pagination process for a specific list instance; continue to use the same `nextCursor` token in each request to fetch additional pages. example: 12345678-abcd-abcd-example-1234567890ab remainingCount: anyOf: - type: number - type: 'null' description: The number of objects remaining to be fetched. example: 10 hasMore: type: boolean description: Indicates whether there are more objects to be fetched. required: - objectType - url - data - nextCursor - remainingCount - hasMore additionalProperties: false x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); // Automatically fetches more pages as needed. for await (const payrollWageItem of conductor.qbd.payrollWageItems.list({ conductorEndUserId: 'end_usr_1234567abcdefg', })) { console.log(payrollWageItem.id); } - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) page = conductor.qbd.payroll_wage_items.list( conductor_end_user_id="end_usr_1234567abcdefg", ) page = page.data[0] print(page.id) post: summary: Create a payroll wage item description: Creates a new payroll wage item. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. requestBody: required: true content: application/json: schema: type: object properties: name: type: string maxLength: 31 description: >- The case-insensitive unique name of this payroll wage item, unique across all payroll wage items. **NOTE**: Payroll wage items do not have a `fullName` field because they are not hierarchical objects, which is why `name` is unique for them but not for objects that have parents. Maximum length: 31 characters. example: Regular Pay isActive: description: >- Indicates whether this payroll wage item is active. Inactive objects are typically hidden from views and reports in QuickBooks. Defaults to `true`. example: true default: true type: boolean wageType: description: >- Categorizes how this payroll wage item calculates pay - can be hourly (regular, overtime, sick, or vacation), salary (regular, sick, or vacation), bonus, or commission based. example: hourly_regular type: string enum: - bonus - commission - hourly_overtime - hourly_regular - hourly_sick - hourly_vacation - salary_regular - salary_sick - salary_vacation overtimeMultiplier: description: >- The overtime pay multiplier for this payroll wage item, represented as a decimal string. For example, `"1.5"` represents time-and-a-half pay. example: '1.5' type: string rate: description: >- The default rate for this payroll wage item, represented as a decimal string. Only one of `rate` and `ratePercent` can be set. Decimal string format: up to 5 decimal places and up to 10 digits before the decimal point (for example, "123.45"). example: '15.00' type: string ratePercent: description: >- The default rate for this payroll wage item expressed as a percentage. Only one of `rate` and `ratePercent` can be set. example: '10' type: string expenseAccountId: description: >- The expense account used to track wage expenses paid through this payroll wage item. example: 80000001-1234567890 type: string maxLength: 36 required: - name - wageType - expenseAccountId additionalProperties: false responses: '200': description: Returns the newly created payroll wage item. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_payroll_wage_item' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const payrollWageItem = await conductor.qbd.payrollWageItems.create({ expenseAccountId: '80000001-1234567890', name: 'Regular Pay', wageType: 'hourly_regular', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(payrollWageItem.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) payroll_wage_item = conductor.qbd.payroll_wage_items.create( expense_account_id="80000001-1234567890", name="Regular Pay", wage_type="hourly_regular", conductor_end_user_id="end_usr_1234567abcdefg", ) print(payroll_wage_item.id) /quickbooks-desktop/payroll-wage-items/{id}: get: summary: Retrieve a payroll wage item description: >- Retrieves a payroll wage item by ID. **IMPORTANT:** If you need to fetch multiple specific payroll wage items 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. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the payroll wage item to retrieve. example: 80000001-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the payroll wage item to retrieve. responses: '200': description: Returns the specified payroll wage item. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_payroll_wage_item' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const payrollWageItem = await conductor.qbd.payrollWageItems.retrieve('80000001-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(payrollWageItem.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) payroll_wage_item = conductor.qbd.payroll_wage_items.retrieve( id="80000001-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(payroll_wage_item.id) /quickbooks-desktop/preferences: get: summary: Retrieve company file preferences description: >- Returns the preferences that the QuickBooks administrator has set for all users of the connected company file. Note that preferences cannot be modified through the API, only through the QuickBooks Desktop user interface. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. responses: '200': description: Returns an object with the company file's preferences. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_preferences' x-codeSamples: - lang: JavaScript source: |- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const preferences = await conductor.qbd.preferences.retrieve({ conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(preferences.accounting); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) preferences = conductor.qbd.preferences.retrieve( conductor_end_user_id="end_usr_1234567abcdefg", ) print(preferences.accounting) /quickbooks-desktop/price-levels: get: summary: List all price levels description: >- 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. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: query name: ids schema: description: >- 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. example: - 80000001-1234567890 type: array items: type: string description: >- 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. - in: query name: names schema: description: >- 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. example: - Wholesale 20% Discount type: array items: type: string description: >- 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. - in: query name: limit schema: description: >- 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 type: integer minimum: 1 description: >- 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. - in: query name: status schema: description: Filter for price levels that are active, inactive, or both. example: active type: string enum: - active - all - inactive default: active description: Filter for price levels that are active, inactive, or both. - in: query name: updatedAfter schema: description: >- 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-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. example: 2025-01-01T12:34:56.000Z type: string description: >- 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-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. - in: query name: updatedBefore schema: description: >- 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-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. example: 2025-02-01T12:34:56.000Z type: string description: >- 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-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. - in: query name: nameContains schema: description: >- 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 type: string description: >- Filter for price levels whose `name` contains this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameStartsWith` or `nameEndsWith`. - in: query name: nameStartsWith schema: description: >- 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 type: string description: >- 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`. - in: query name: nameEndsWith schema: description: >- 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 type: string description: >- 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`. - in: query name: nameFrom schema: description: >- Filter for price levels whose `name` is alphabetically greater than or equal to this value. example: A type: string description: >- Filter for price levels whose `name` is alphabetically greater than or equal to this value. - in: query name: nameTo schema: description: >- Filter for price levels whose `name` is alphabetically less than or equal to this value. example: Z type: string description: >- Filter for price levels whose `name` is alphabetically less than or equal to this value. - in: query name: itemIds schema: description: Filter for price levels containing these items. example: - 80000001-1234567890 type: array items: type: string description: Filter for price levels containing these items. - in: query name: currencyIds schema: description: Filter for price levels in these currencies. example: - 80000001-1234567890 type: array items: type: string description: Filter for price levels in these currencies. responses: '200': description: Returns a list of price levels. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: objectType: description: The type of object. This value is always `"list"`. example: list type: string const: list url: type: string description: The endpoint URL where this list can be accessed. example: /v1/quickbooks-desktop/price-levels data: type: array items: $ref: '#/components/schemas/qbd_price_level' description: The array of price levels. required: - objectType - url - data additionalProperties: false x-codeSamples: - lang: JavaScript source: |- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const priceLevels = await conductor.qbd.priceLevels.list({ conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(priceLevels.data); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) price_levels = conductor.qbd.price_levels.list( conductor_end_user_id="end_usr_1234567abcdefg", ) print(price_levels.data) post: summary: Create a price level description: Creates a new price level. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. requestBody: required: true content: application/json: schema: type: object properties: name: type: string maxLength: 31 description: >- The case-insensitive unique name of this price level, unique across all price levels. **NOTE**: Price levels do not have a `fullName` field because they are not hierarchical objects, which is why `name` is unique for them but not for objects that have parents. Maximum length: 31 characters. example: Wholesale 20% Discount isActive: description: >- Indicates whether this price level is active. Inactive objects are typically hidden from views and reports in QuickBooks. Defaults to `true`. example: true default: true type: boolean fixedPercentage: description: >- The fixed percentage adjustment applied to all items for this price level (instead of a per-item price level). Once you create the price level, you cannot change this. When this price level is applied to a customer, it automatically adjusts the `rate` and `amount` columns for applicable line items in sales orders and invoices for that customer. This value supports both positive and negative values - a value of "20" increases prices by 20%, while "-10" decreases prices by 10%. example: '-10.0' type: string perItemPriceLevels: description: >- The per-item price level configurations for this price level. minItems: 1 type: array items: type: object properties: itemId: description: >- The item associated with this per-item price level. 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. example: 80000001-1234567890 type: string maxLength: 36 customPrice: description: >- The fixed amount custom price for this per-item price level that overrides the standard price for the specified item. Used when setting an absolute price value for the item in this price level. example: '19.99' type: string customPricePercent: description: >- The fixed discount percentage for this per-item price level that modifies the specified item's standard price. Used to create a fixed percentage markup or discount specific to this item within this price level. example: '15.0' type: string adjustPercentage: description: >- The percentage adjustment for this per-item price level when using relative pricing. Specifies a percentage to modify pricing, using positive values (e.g., "20") to increase prices by that percentage, or negative values (e.g., "-10") to apply a discount. example: '-10.0' type: string adjustRelativeTo: description: >- The base value reference for this per-item price level's percentage adjustment. Specifies which price to use as the starting point for the adjustment calculation in the price level. **NOTE:** The price level must use either a fixed pricing approach (`customPrice` or `customPricePercent`) or a relative adjustment approach (`adjustPercentage` with `adjustRelativeTo`) when configuring per-item price levels. example: standard_price type: string enum: - cost - current_custom_price - standard_price required: - itemId additionalProperties: false currencyId: description: >- The price level's currency. For built-in currencies, the name and code are standard ISO 4217 international values. For user-defined currencies, all values are editable. example: 80000001-1234567890 type: string maxLength: 36 required: - name additionalProperties: false responses: '200': description: Returns the newly created price level. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_price_level' x-codeSamples: - lang: JavaScript source: |- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const priceLevel = await conductor.qbd.priceLevels.create({ name: 'Wholesale 20% Discount', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(priceLevel.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) price_level = conductor.qbd.price_levels.create( name="Wholesale 20% Discount", conductor_end_user_id="end_usr_1234567abcdefg", ) print(price_level.id) /quickbooks-desktop/price-levels/{id}: get: summary: Retrieve a price level description: >- Retrieves a price level by ID. **IMPORTANT:** If you need to fetch multiple specific price levels 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. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the price level to retrieve. example: 80000001-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the price level to retrieve. responses: '200': description: Returns the specified price level. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_price_level' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const priceLevel = await conductor.qbd.priceLevels.retrieve('80000001-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(priceLevel.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) price_level = conductor.qbd.price_levels.retrieve( id="80000001-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(price_level.id) post: summary: Update a price level description: Updates an existing price level. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the price level to update. example: 80000001-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the price level to update. requestBody: required: true content: application/json: schema: type: object properties: revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of the price level 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. example: '1721172183' name: description: >- The case-insensitive unique name of this price level, unique across all price levels. **NOTE**: Price levels do not have a `fullName` field because they are not hierarchical objects, which is why `name` is unique for them but not for objects that have parents. Maximum length: 31 characters. example: Wholesale 20% Discount type: string maxLength: 31 isActive: description: >- Indicates whether this price level is active. Inactive objects are typically hidden from views and reports in QuickBooks. Defaults to `true`. example: true type: boolean fixedPercentage: description: >- The fixed percentage adjustment applied to all items for this price level (instead of a per-item price level). Once you create the price level, you cannot change this. When this price level is applied to a customer, it automatically adjusts the `rate` and `amount` columns for applicable line items in sales orders and invoices for that customer. This value supports both positive and negative values - a value of "20" increases prices by 20%, while "-10" decreases prices by 10%. example: '-10.0' type: string perItemPriceLevels: description: >- The per-item price level configurations for this price level. minItems: 1 type: array items: type: object properties: itemId: description: >- The item associated with this per-item price level. 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. example: 80000001-1234567890 type: string maxLength: 36 customPrice: description: >- The fixed amount custom price for this per-item price level that overrides the standard price for the specified item. Used when setting an absolute price value for the item in this price level. example: '19.99' type: string customPricePercent: description: >- The fixed discount percentage for this per-item price level that modifies the specified item's standard price. Used to create a fixed percentage markup or discount specific to this item within this price level. example: '15.0' type: string adjustPercentage: description: >- The percentage adjustment for this per-item price level when using relative pricing. Specifies a percentage to modify pricing, using positive values (e.g., "20") to increase prices by that percentage, or negative values (e.g., "-10") to apply a discount. example: '-10.0' type: string adjustRelativeTo: description: >- The base value reference for this per-item price level's percentage adjustment. Specifies which price to use as the starting point for the adjustment calculation in the price level. **NOTE:** The price level must use either a fixed pricing approach (`customPrice` or `customPricePercent`) or a relative adjustment approach (`adjustPercentage` with `adjustRelativeTo`) when configuring per-item price levels. example: standard_price type: string enum: - cost - current_custom_price - standard_price required: - itemId additionalProperties: false currencyId: description: >- The price level's currency. For built-in currencies, the name and code are standard ISO 4217 international values. For user-defined currencies, all values are editable. example: 80000001-1234567890 type: string maxLength: 36 required: - revisionNumber additionalProperties: false responses: '200': description: Returns the updated price level. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_price_level' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const priceLevel = await conductor.qbd.priceLevels.update('80000001-1234567890', { revisionNumber: '1721172183', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(priceLevel.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) price_level = conductor.qbd.price_levels.update( id="80000001-1234567890", revision_number="1721172183", conductor_end_user_id="end_usr_1234567abcdefg", ) print(price_level.id) /quickbooks-desktop/purchase-orders: get: summary: List all purchase orders description: >- Returns a list of purchase orders. Use the `cursor` parameter to paginate through the results. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: query name: ids schema: description: >- Filter for specific purchase orders 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 type: array items: type: string description: >- Filter for specific purchase orders 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. - in: query name: refNumbers schema: description: >- Filter for specific purchase orders 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: - PURCHASE ORDER-1234 type: array items: type: string description: >- Filter for specific purchase orders 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. - in: query name: limit schema: default: 150 description: >- 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. example: 150 type: integer minimum: 1 maximum: 150 description: >- 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. - in: query name: cursor schema: description: >- 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 type: string description: >- 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. - in: query name: updatedAfter schema: description: >- Filter for purchase orders 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. example: 2025-01-01T12:34:56.000Z type: string description: >- Filter for purchase orders 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. - in: query name: updatedBefore schema: description: >- Filter for purchase orders 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. example: 2025-02-01T12:34:56.000Z type: string description: >- Filter for purchase orders 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. - in: query name: transactionDateFrom schema: description: >- Filter for purchase orders 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-01` → `2025-01-01T00:00:00`). example: '2025-01-01' type: string format: date description: >- Filter for purchase orders 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-01` → `2025-01-01T00:00:00`). - in: query name: transactionDateTo schema: description: >- Filter for purchase orders 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-01` → `2025-01-01T23:59:59`). example: '2025-02-01' type: string format: date description: >- Filter for purchase orders 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-01` → `2025-01-01T23:59:59`). - in: query name: vendorIds schema: description: Filter for purchase orders sent to these vendors. example: - 80000001-1234567890 type: array items: type: string description: Filter for purchase orders sent to these vendors. - in: query name: accountIds schema: description: Filter for purchase orders associated with these accounts. example: - 80000001-1234567890 type: array items: type: string description: Filter for purchase orders associated with these accounts. - in: query name: refNumberContains schema: description: >- Filter for purchase orders whose `refNumber` contains this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberStartsWith` or `refNumberEndsWith`. example: PO-1234 type: string description: >- Filter for purchase orders whose `refNumber` contains this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberStartsWith` or `refNumberEndsWith`. - in: query name: refNumberStartsWith schema: description: >- Filter for purchase orders whose `refNumber` starts with this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberContains` or `refNumberEndsWith`. example: PO type: string description: >- Filter for purchase orders whose `refNumber` starts with this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberContains` or `refNumberEndsWith`. - in: query name: refNumberEndsWith schema: description: >- Filter for purchase orders whose `refNumber` ends with this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberContains` or `refNumberStartsWith`. example: '1234' type: string description: >- Filter for purchase orders whose `refNumber` ends with this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberContains` or `refNumberStartsWith`. - in: query name: refNumberFrom schema: description: >- Filter for purchase orders 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: PO-0001 type: string description: >- Filter for purchase orders 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. - in: query name: refNumberTo schema: description: >- Filter for purchase orders 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: PO-9999 type: string description: >- Filter for purchase orders 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. - in: query name: currencyIds schema: description: Filter for purchase orders in these currencies. example: - 80000001-1234567890 type: array items: type: string description: Filter for purchase orders in these currencies. - in: query name: includeLineItems schema: description: Whether to include line items in the response. Defaults to `true`. example: true type: boolean default: true description: Whether to include line items in the response. Defaults to `true`. - in: query name: includeLinkedTransactions schema: description: >- Whether to include linked transactions in the response. Defaults to `false`. For example, a payment linked to the corresponding purchase order. example: false type: boolean default: false description: >- Whether to include linked transactions in the response. Defaults to `false`. For example, a payment linked to the corresponding purchase order. responses: '200': description: Returns a list of purchase orders. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: objectType: description: The type of object. This value is always `"list"`. example: list type: string const: list url: type: string description: The endpoint URL where this list can be accessed. example: /v1/quickbooks-desktop/purchase-orders data: type: array items: $ref: '#/components/schemas/qbd_purchase_order' description: The array of purchase orders. nextCursor: anyOf: - type: string - type: 'null' description: >- The `nextCursor` is a pagination token returned in the response when you use the `limit` parameter in your request. To retrieve subsequent pages of results, include this token as the value of the `cursor` request parameter in your following API calls. **NOTE**: The `nextCursor` value remains constant throughout the pagination process for a specific list instance; continue to use the same `nextCursor` token in each request to fetch additional pages. example: 12345678-abcd-abcd-example-1234567890ab remainingCount: anyOf: - type: number - type: 'null' description: The number of objects remaining to be fetched. example: 10 hasMore: type: boolean description: Indicates whether there are more objects to be fetched. required: - objectType - url - data - nextCursor - remainingCount - hasMore additionalProperties: false x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); // Automatically fetches more pages as needed. for await (const purchaseOrder of conductor.qbd.purchaseOrders.list({ conductorEndUserId: 'end_usr_1234567abcdefg', })) { console.log(purchaseOrder.id); } - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) page = conductor.qbd.purchase_orders.list( conductor_end_user_id="end_usr_1234567abcdefg", ) page = page.data[0] print(page.id) post: summary: Create a purchase order description: Creates a new purchase order. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. requestBody: required: true content: application/json: schema: type: object properties: vendorId: description: >- The vendor who sent this purchase order for goods or services purchased. example: 80000001-1234567890 type: string maxLength: 36 classId: description: >- 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. example: 80000001-1234567890 type: string maxLength: 36 inventorySiteId: description: >- The site location where inventory for the item associated with this purchase order is stored. example: 80000001-1234567890 type: string maxLength: 36 shipToEntityId: description: >- The customer, vendor, employee, or other entity to whom this purchase order is to be shipped. example: 80000001-1234567890 type: string maxLength: 36 documentTemplateId: description: >- The predefined template in QuickBooks that determines the layout and formatting for this purchase order when printed or displayed. example: 80000001-1234567890 type: string maxLength: 36 transactionDate: type: string format: date description: >- The date of this purchase order, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-01' refNumber: description: >- 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. When left blank in this create request, this field will be left blank in QuickBooks (i.e., it does *not* auto-increment). Maximum length: 11 characters. example: PO-1234 type: string maxLength: 11 vendorAddress: description: The address of the vendor who sent this purchase order. type: object properties: line1: description: >- The first line of the address (e.g., street, PO Box, or company name). Maximum length: 41 characters. example: Conductor Labs Inc. type: string maxLength: 41 line2: description: >- The second line of the address, if needed (e.g., apartment, suite, unit, or building). Maximum length: 41 characters. example: 540 Market St. type: string maxLength: 41 line3: description: |- The third line of the address, if needed. Maximum length: 41 characters. example: Suite 100 type: string maxLength: 41 line4: description: |- The fourth line of the address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 line5: description: |- The fifth line of the address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 city: description: >- The city, district, suburb, town, or village name of the address. Maximum length: 31 characters. example: San Francisco type: string maxLength: 31 state: description: >- The state, county, province, or region name of the address. Maximum length: 21 characters. example: CA type: string maxLength: 21 postalCode: description: |- The postal code or ZIP code of the address. Maximum length: 13 characters. example: '94110' type: string maxLength: 13 country: description: The country name of the address. example: United States type: string note: description: >- A note written at the bottom of the address in the form in which it appears, such as the invoice form. example: Conductor HQ type: string additionalProperties: false shippingAddress: description: The purchase order's shipping address. type: object properties: line1: description: >- The first line of the address (e.g., street, PO Box, or company name). Maximum length: 41 characters. example: Conductor Labs Inc. type: string maxLength: 41 line2: description: >- The second line of the address, if needed (e.g., apartment, suite, unit, or building). Maximum length: 41 characters. example: 540 Market St. type: string maxLength: 41 line3: description: |- The third line of the address, if needed. Maximum length: 41 characters. example: Suite 100 type: string maxLength: 41 line4: description: |- The fourth line of the address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 line5: description: |- The fifth line of the address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 city: description: >- The city, district, suburb, town, or village name of the address. Maximum length: 31 characters. example: San Francisco type: string maxLength: 31 state: description: >- The state, county, province, or region name of the address. Maximum length: 21 characters. example: CA type: string maxLength: 21 postalCode: description: |- The postal code or ZIP code of the address. Maximum length: 13 characters. example: '94110' type: string maxLength: 13 country: description: The country name of the address. example: United States type: string note: description: >- A note written at the bottom of the address in the form in which it appears, such as the invoice form. example: Conductor HQ type: string additionalProperties: false termsId: description: >- The purchase order's payment terms, defining when payment is due and any applicable discounts. example: 80000001-1234567890 type: string maxLength: 36 dueDate: description: >- The date by which this purchase order must be paid, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-31' type: string format: date expectedDate: description: >- The date on which shipment of this purchase order is expected to be completed, in ISO 8601 format (YYYY-MM-DD). example: '2024-01-01' type: string format: date shippingMethodId: description: >- The shipping method used for this purchase order, such as standard mail or overnight delivery. example: 80000001-1234567890 type: string maxLength: 36 shipmentOrigin: description: >- 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. example: San Francisco, CA type: string maxLength: 13 memo: description: >- A memo or note for this purchase order that appears in reports, but not on the purchase order. example: Office supplies for September type: string vendorMessage: description: >- A message to be printed on this purchase order for the vendor to read. example: Please include packing slip with shipment type: string isQueuedForPrint: type: boolean description: >- Indicates whether this purchase order is included in the queue of documents for QuickBooks to print. example: true isQueuedForEmail: description: >- Indicates whether this purchase order is included in the queue of documents for QuickBooks to email to the customer. example: true type: boolean salesTaxCodeId: description: >- 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. example: 80000001-1234567890 type: string maxLength: 36 otherCustomField1: description: >- 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. example: Special handling required type: string otherCustomField2: description: >- 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. example: Always ship with a spare type: string exchangeRate: description: >- 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: 1.2345 type: number externalId: type: string format: uuid description: >- 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. **IMPORTANT**: This field must be formatted as a valid GUID; otherwise, QuickBooks will return an error. example: 12345678-abcd-1234-abcd-1234567890ab lines: description: >- The purchase order's line items, each representing a single product or service ordered. **IMPORTANT**: You must specify `lines`, `lineGroups`, or both when creating a purchase order. minItems: 1 type: array items: type: object properties: itemId: description: >- 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. example: 80000001-1234567890 type: string maxLength: 36 sku: description: >- The purchase order line's stock keeping unit (SKU), which is sometimes the manufacturer's part number. example: MPN-123456 type: string description: description: A description of this purchase order line. example: Office chairs - Herman Miller Aeron (Black) type: string quantity: description: >- 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. example: 5 type: number unitOfMeasure: description: >- 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. example: Each type: string rate: description: >- 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. Decimal string format: up to 5 decimal places and up to 10 digits before the decimal point (for example, "123.45"). example: '10.00' type: string classId: description: >- 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. example: 80000001-1234567890 type: string maxLength: 36 amount: description: >- 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. Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45"). example: '1000.00' type: string inventorySiteLocationId: description: >- The specific location (e.g., bin or shelf) within the inventory site where the item associated with this purchase order line is stored. example: 80000001-1234567890 type: string maxLength: 36 payeeId: description: >- 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). example: 80000001-1234567890 type: string maxLength: 36 serviceDate: description: >- 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. example: '2024-03-15' type: string format: date salesTaxCodeId: description: >- 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. example: 80000001-1234567890 type: string maxLength: 36 overrideItemAccountId: description: >- The account to use for this purchase order line, overriding the default account associated with the item. example: 80000001-1234567890 type: string maxLength: 36 otherCustomField1: description: >- 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. example: Special handling required type: string otherCustomField2: description: >- 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. example: Always ship with a spare type: string customFields: description: >- The custom fields for the purchase order line object, added as user-defined data extensions, not included in the standard QuickBooks object. minItems: 1 type: array items: type: object properties: ownerId: type: string description: >- 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. example: '0' name: type: string description: >- 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. example: Customer Rating value: type: string description: >- The value of this custom field. The maximum length depends on the field's data type. example: Premium required: - ownerId - name - value additionalProperties: false additionalProperties: false lineGroups: description: >- The purchase order's line item groups, each representing a predefined set of related items. **IMPORTANT**: You must specify `lines`, `lineGroups`, or both when creating a purchase order. minItems: 1 type: array items: type: object properties: itemGroupId: description: >- 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. example: 80000001-1234567890 type: string maxLength: 36 quantity: description: >- 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. example: 5 type: number unitOfMeasure: description: >- 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. example: Each type: string serviceDate: description: >- 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. example: '2024-03-15' type: string format: date inventorySiteLocationId: description: >- The specific location (e.g., bin or shelf) within the inventory site where the item group associated with this purchase order line group is stored. example: 80000001-1234567890 type: string maxLength: 36 customFields: description: >- The custom fields for the purchase order line group object, added as user-defined data extensions, not included in the standard QuickBooks object. minItems: 1 type: array items: type: object properties: ownerId: type: string description: >- 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. example: '0' name: type: string description: >- 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. example: Customer Rating value: type: string description: >- The value of this custom field. The maximum length depends on the field's data type. example: Premium required: - ownerId - name - value additionalProperties: false required: - itemGroupId additionalProperties: false required: - transactionDate additionalProperties: false responses: '200': description: Returns the newly created purchase order. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_purchase_order' x-codeSamples: - lang: JavaScript source: |- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const purchaseOrder = await conductor.qbd.purchaseOrders.create({ transactionDate: '2024-10-01', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(purchaseOrder.id); - lang: Python source: |- import os from datetime import date from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) purchase_order = conductor.qbd.purchase_orders.create( transaction_date=date.fromisoformat("2024-10-01"), conductor_end_user_id="end_usr_1234567abcdefg", ) print(purchase_order.id) /quickbooks-desktop/purchase-orders/{id}: get: summary: Retrieve a purchase order description: >- 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. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the purchase order to retrieve. example: 123ABC-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the purchase order to retrieve. responses: '200': description: Returns the specified purchase order. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_purchase_order' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const purchaseOrder = await conductor.qbd.purchaseOrders.retrieve('123ABC-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(purchaseOrder.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) purchase_order = conductor.qbd.purchase_orders.retrieve( id="123ABC-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(purchase_order.id) post: summary: Update a purchase order description: >- 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. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the purchase order to update. example: 123ABC-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the purchase order to update. requestBody: required: true content: application/json: schema: type: object properties: revisionNumber: type: string description: >- 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. example: '1721172183' vendorId: description: >- The vendor who sent this purchase order for goods or services purchased. example: 80000001-1234567890 type: string maxLength: 36 classId: description: >- 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. example: 80000001-1234567890 type: string maxLength: 36 inventorySiteId: description: >- The site location where inventory for the item associated with this purchase order is stored. example: 80000001-1234567890 type: string maxLength: 36 shipToEntityId: description: >- The customer, vendor, employee, or other entity to whom this purchase order is to be shipped. example: 80000001-1234567890 type: string maxLength: 36 documentTemplateId: description: >- The predefined template in QuickBooks that determines the layout and formatting for this purchase order when printed or displayed. example: 80000001-1234567890 type: string maxLength: 36 transactionDate: description: >- The date of this purchase order, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-01' type: string format: date refNumber: description: >- 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. example: PO-1234 type: string maxLength: 11 vendorAddress: description: The address of the vendor who sent this purchase order. type: object properties: line1: description: >- The first line of the address (e.g., street, PO Box, or company name). Maximum length: 41 characters. example: Conductor Labs Inc. type: string maxLength: 41 line2: description: >- The second line of the address, if needed (e.g., apartment, suite, unit, or building). Maximum length: 41 characters. example: 540 Market St. type: string maxLength: 41 line3: description: |- The third line of the address, if needed. Maximum length: 41 characters. example: Suite 100 type: string maxLength: 41 line4: description: |- The fourth line of the address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 line5: description: |- The fifth line of the address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 city: description: >- The city, district, suburb, town, or village name of the address. Maximum length: 31 characters. example: San Francisco type: string maxLength: 31 state: description: >- The state, county, province, or region name of the address. Maximum length: 21 characters. example: CA type: string maxLength: 21 postalCode: description: |- The postal code or ZIP code of the address. Maximum length: 13 characters. example: '94110' type: string maxLength: 13 country: description: The country name of the address. example: United States type: string note: description: >- A note written at the bottom of the address in the form in which it appears, such as the invoice form. example: Conductor HQ type: string additionalProperties: false shippingAddress: description: The purchase order's shipping address. type: object properties: line1: description: >- The first line of the address (e.g., street, PO Box, or company name). Maximum length: 41 characters. example: Conductor Labs Inc. type: string maxLength: 41 line2: description: >- The second line of the address, if needed (e.g., apartment, suite, unit, or building). Maximum length: 41 characters. example: 540 Market St. type: string maxLength: 41 line3: description: |- The third line of the address, if needed. Maximum length: 41 characters. example: Suite 100 type: string maxLength: 41 line4: description: |- The fourth line of the address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 line5: description: |- The fifth line of the address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 city: description: >- The city, district, suburb, town, or village name of the address. Maximum length: 31 characters. example: San Francisco type: string maxLength: 31 state: description: >- The state, county, province, or region name of the address. Maximum length: 21 characters. example: CA type: string maxLength: 21 postalCode: description: |- The postal code or ZIP code of the address. Maximum length: 13 characters. example: '94110' type: string maxLength: 13 country: description: The country name of the address. example: United States type: string note: description: >- A note written at the bottom of the address in the form in which it appears, such as the invoice form. example: Conductor HQ type: string additionalProperties: false termsId: description: >- The purchase order's payment terms, defining when payment is due and any applicable discounts. example: 80000001-1234567890 type: string maxLength: 36 dueDate: description: >- The date by which this purchase order must be paid, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-31' type: string format: date expectedDate: description: >- The date on which shipment of this purchase order is expected to be completed, in ISO 8601 format (YYYY-MM-DD). example: '2024-01-01' type: string format: date shippingMethodId: description: >- The shipping method used for this purchase order, such as standard mail or overnight delivery. example: 80000001-1234567890 type: string maxLength: 36 shipmentOrigin: description: >- 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. example: San Francisco, CA type: string maxLength: 13 isManuallyClosed: description: >- 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. example: true type: boolean memo: description: >- A memo or note for this purchase order that appears in reports, but not on the purchase order. example: Office supplies for September type: string vendorMessage: description: >- A message to be printed on this purchase order for the vendor to read. example: Please include packing slip with shipment type: string isQueuedForPrint: type: boolean description: >- Indicates whether this purchase order is included in the queue of documents for QuickBooks to print. example: true isQueuedForEmail: description: >- Indicates whether this purchase order is included in the queue of documents for QuickBooks to email to the customer. example: true type: boolean salesTaxCodeId: description: >- 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. example: 80000001-1234567890 type: string maxLength: 36 otherCustomField1: description: >- 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. example: Special handling required type: string otherCustomField2: description: >- 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. example: Always ship with a spare type: string exchangeRate: description: >- 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: 1.2345 type: number lines: description: >- The purchase order's line items, each representing a single product or service ordered. **IMPORTANT**: 1. Including this array in your update request will **REPLACE** all existing line items for the purchase order with this array. To keep any existing line items, you must include them in this array even if they have not changed. **Any line items not included will be removed.** 2. To add a new line item, include it here with the `id` field set to `-1`. 3. If you do not wish to modify any line items, omit this field entirely to keep them unchanged. minItems: 1 type: array items: type: object properties: id: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of an existing purchase order line you wish to retain or update. **IMPORTANT**: Set this field to `-1` for new purchase order lines you wish to add. example: 456DEF-1234567890 itemId: description: >- 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. example: 80000001-1234567890 type: string maxLength: 36 sku: description: >- The purchase order line's stock keeping unit (SKU), which is sometimes the manufacturer's part number. example: MPN-123456 type: string description: description: A description of this purchase order line. example: Office chairs - Herman Miller Aeron (Black) type: string quantity: description: >- 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. example: 5 type: number unitOfMeasure: description: >- 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. example: Each type: string overrideUnitOfMeasureSetId: description: >- 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. example: 80000001-1234567890 type: string maxLength: 36 rate: description: >- 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. Decimal string format: up to 5 decimal places and up to 10 digits before the decimal point (for example, "123.45"). example: '10.00' type: string classId: description: >- 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. example: 80000001-1234567890 type: string maxLength: 36 amount: description: >- 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. Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45"). example: '1000.00' type: string inventorySiteLocationId: description: >- The specific location (e.g., bin or shelf) within the inventory site where the item associated with this purchase order line is stored. example: 80000001-1234567890 type: string maxLength: 36 payeeId: description: >- 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). example: 80000001-1234567890 type: string maxLength: 36 serviceDate: description: >- 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. example: '2024-03-15' type: string format: date salesTaxCodeId: description: >- 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. example: 80000001-1234567890 type: string maxLength: 36 isManuallyClosed: description: >- 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. example: true type: boolean overrideItemAccountId: description: >- The account to use for this purchase order line, overriding the default account associated with the item. example: 80000001-1234567890 type: string maxLength: 36 otherCustomField1: description: >- 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. example: Special handling required type: string otherCustomField2: description: >- 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. example: Always ship with a spare type: string required: - id additionalProperties: false lineGroups: description: >- The purchase order's line item groups, each representing a predefined set of related items. **IMPORTANT**: 1. Including this array in your update request will **REPLACE** all existing line item groups for the purchase order with this array. To keep any existing line item groups, you must include them in this array even if they have not changed. **Any line item groups not included will be removed.** 2. To add a new line item group, include it here with the `id` field set to `-1`. 3. If you do not wish to modify any line item groups, omit this field entirely to keep them unchanged. minItems: 1 type: array items: type: object properties: id: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of an existing purchase order line group you wish to retain or update. **IMPORTANT**: Set this field to `-1` for new purchase order line groups you wish to add. example: 456DEF-1234567890 itemGroupId: description: >- 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. example: 80000001-1234567890 type: string maxLength: 36 quantity: description: >- 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. example: 5 type: number unitOfMeasure: description: >- 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. example: Each type: string overrideUnitOfMeasureSetId: description: >- 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. example: 80000001-1234567890 type: string maxLength: 36 lines: description: >- The purchase order line group's line items, each representing a single product or service ordered. **IMPORTANT**: 1. Including this array in your update request will **REPLACE** all existing line items for the purchase order line group with this array. To keep any existing line items, you must include them in this array even if they have not changed. **Any line items not included will be removed.** 2. To add a new line item, include it here with the `id` field set to `-1`. 3. If you do not wish to modify any line items, omit this field entirely to keep them unchanged. minItems: 1 type: array items: type: object properties: id: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of an existing purchase order line you wish to retain or update. **IMPORTANT**: Set this field to `-1` for new purchase order lines you wish to add. example: 456DEF-1234567890 itemId: description: >- 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. example: 80000001-1234567890 type: string maxLength: 36 sku: description: >- The purchase order line's stock keeping unit (SKU), which is sometimes the manufacturer's part number. example: MPN-123456 type: string description: description: A description of this purchase order line. example: Office chairs - Herman Miller Aeron (Black) type: string quantity: description: >- 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. example: 5 type: number unitOfMeasure: description: >- 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. example: Each type: string overrideUnitOfMeasureSetId: description: >- 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. example: 80000001-1234567890 type: string maxLength: 36 rate: description: >- 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. Decimal string format: up to 5 decimal places and up to 10 digits before the decimal point (for example, "123.45"). example: '10.00' type: string classId: description: >- 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. example: 80000001-1234567890 type: string maxLength: 36 amount: description: >- 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. Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45"). example: '1000.00' type: string inventorySiteLocationId: description: >- The specific location (e.g., bin or shelf) within the inventory site where the item associated with this purchase order line is stored. example: 80000001-1234567890 type: string maxLength: 36 payeeId: description: >- 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). example: 80000001-1234567890 type: string maxLength: 36 serviceDate: description: >- 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. example: '2024-03-15' type: string format: date salesTaxCodeId: description: >- 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. example: 80000001-1234567890 type: string maxLength: 36 isManuallyClosed: description: >- 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. example: true type: boolean overrideItemAccountId: description: >- The account to use for this purchase order line, overriding the default account associated with the item. example: 80000001-1234567890 type: string maxLength: 36 otherCustomField1: description: >- 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. example: Special handling required type: string otherCustomField2: description: >- 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. example: Always ship with a spare type: string required: - id additionalProperties: false required: - id additionalProperties: false required: - revisionNumber additionalProperties: false responses: '200': description: Returns the updated purchase order. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_purchase_order' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const purchaseOrder = await conductor.qbd.purchaseOrders.update('123ABC-1234567890', { revisionNumber: '1721172183', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(purchaseOrder.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) purchase_order = conductor.qbd.purchase_orders.update( id="123ABC-1234567890", revision_number="1721172183", conductor_end_user_id="end_usr_1234567abcdefg", ) print(purchase_order.id) delete: summary: Delete a purchase order description: >- Permanently deletes a purchase order. The deletion will fail if the purchase order is currently in use or has any linked transactions that are in use. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the purchase order to delete. example: 123ABC-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the purchase order to delete. responses: '200': description: >- Returns a confirmation of the deletion with the ID of the deleted purchase order. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: id: type: string description: >- The QuickBooks-assigned unique identifier of the deleted purchase order. example: 123ABC-1234567890 objectType: description: >- The type of object. This value is always `"qbd_purchase_order"`. example: qbd_purchase_order type: string const: qbd_purchase_order refNumber: anyOf: - type: string - type: 'null' description: >- The case-sensitive user-defined reference number of the deleted purchase order. example: PO-1234 deleted: type: boolean description: Indicates whether the purchase order was deleted. example: true required: - id - objectType - refNumber - deleted additionalProperties: false x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const purchaseOrder = await conductor.qbd.purchaseOrders.delete('123ABC-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(purchaseOrder.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) purchase_order = conductor.qbd.purchase_orders.delete( id="123ABC-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(purchase_order.id) /quickbooks-desktop/receive-payments: get: summary: List all receive-payments description: >- Returns a list of receive-payments. Use the `cursor` parameter to paginate through the results. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: query name: ids schema: description: >- Filter for specific receive-payments 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 type: array items: type: string description: >- Filter for specific receive-payments 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. - in: query name: refNumbers schema: description: >- Filter for specific receive-payments 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: - RECEIVE-PAYMENT-1234 type: array items: type: string description: >- Filter for specific receive-payments 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. - in: query name: limit schema: default: 150 description: >- 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. example: 150 type: integer minimum: 1 maximum: 150 description: >- 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. - in: query name: cursor schema: description: >- 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 type: string description: >- 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. - in: query name: updatedAfter schema: description: >- Filter for receive-payments 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. example: 2025-01-01T12:34:56.000Z type: string description: >- Filter for receive-payments 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. - in: query name: updatedBefore schema: description: >- Filter for receive-payments 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. example: 2025-02-01T12:34:56.000Z type: string description: >- Filter for receive-payments 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. - in: query name: transactionDateFrom schema: description: >- Filter for receive-payments 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-01` → `2025-01-01T00:00:00`). example: '2025-01-01' type: string format: date description: >- Filter for receive-payments 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-01` → `2025-01-01T00:00:00`). - in: query name: transactionDateTo schema: description: >- Filter for receive-payments 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-01` → `2025-01-01T23:59:59`). example: '2025-02-01' type: string format: date description: >- Filter for receive-payments 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-01` → `2025-01-01T23:59:59`). - in: query name: customerIds schema: description: Filter for receive-payments received from these customers. example: - 80000001-1234567890 type: array items: type: string description: Filter for receive-payments received from these customers. - in: query name: accountIds schema: description: Filter for receive-payments associated with these accounts. example: - 80000001-1234567890 type: array items: type: string description: Filter for receive-payments associated with these accounts. - in: query name: refNumberContains schema: description: >- Filter for receive-payments whose `refNumber` contains this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberStartsWith` or `refNumberEndsWith`. example: PAYMENT-1234 type: string description: >- Filter for receive-payments whose `refNumber` contains this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberStartsWith` or `refNumberEndsWith`. - in: query name: refNumberStartsWith schema: description: >- Filter for receive-payments whose `refNumber` starts with this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberContains` or `refNumberEndsWith`. example: PAYMENT type: string description: >- Filter for receive-payments whose `refNumber` starts with this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberContains` or `refNumberEndsWith`. - in: query name: refNumberEndsWith schema: description: >- Filter for receive-payments whose `refNumber` ends with this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberContains` or `refNumberStartsWith`. example: '1234' type: string description: >- Filter for receive-payments whose `refNumber` ends with this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberContains` or `refNumberStartsWith`. - in: query name: refNumberFrom schema: description: >- Filter for receive-payments 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: PAYMENT-0001 type: string description: >- Filter for receive-payments 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. - in: query name: refNumberTo schema: description: >- Filter for receive-payments 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: PAYMENT-9999 type: string description: >- Filter for receive-payments 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. - in: query name: currencyIds schema: description: Filter for receive-payments in these currencies. example: - 80000001-1234567890 type: array items: type: string description: Filter for receive-payments in these currencies. - in: query name: includeLineItems schema: description: Whether to include line items in the response. Defaults to `true`. example: true type: boolean default: true description: Whether to include line items in the response. Defaults to `true`. responses: '200': description: Returns a list of receive-payments. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: objectType: description: The type of object. This value is always `"list"`. example: list type: string const: list url: type: string description: The endpoint URL where this list can be accessed. example: /v1/quickbooks-desktop/receive-payments data: type: array items: $ref: '#/components/schemas/qbd_receive_payment' description: The array of receive-payments. nextCursor: anyOf: - type: string - type: 'null' description: >- The `nextCursor` is a pagination token returned in the response when you use the `limit` parameter in your request. To retrieve subsequent pages of results, include this token as the value of the `cursor` request parameter in your following API calls. **NOTE**: The `nextCursor` value remains constant throughout the pagination process for a specific list instance; continue to use the same `nextCursor` token in each request to fetch additional pages. example: 12345678-abcd-abcd-example-1234567890ab remainingCount: anyOf: - type: number - type: 'null' description: The number of objects remaining to be fetched. example: 10 hasMore: type: boolean description: Indicates whether there are more objects to be fetched. required: - objectType - url - data - nextCursor - remainingCount - hasMore additionalProperties: false x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); // Automatically fetches more pages as needed. for await (const receivePayment of conductor.qbd.receivePayments.list({ conductorEndUserId: 'end_usr_1234567abcdefg', })) { console.log(receivePayment.id); } - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) page = conductor.qbd.receive_payments.list( conductor_end_user_id="end_usr_1234567abcdefg", ) page = page.data[0] print(page.id) post: summary: Create a receive-payment description: >- Records a customer payment and optionally applies it to specific invoices, discounts, or credits. All allocations must target the same accounts receivable account as those invoices, and each one has to include a payment amount, discount, or credit so QuickBooks can close out the balance. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. requestBody: required: true content: application/json: schema: type: object properties: customerId: description: >- The customer or customer-job to which the payment for this receive-payment is credited. example: 80000001-1234567890 type: string maxLength: 36 receivablesAccountId: description: >- The Accounts-Receivable (A/R) account to which this receive-payment is assigned, used to track the amount owed. If omitted, QuickBooks Desktop uses the default A/R account configured in the company file. **IMPORTANT**: If this receive-payment is linked to other transactions, this A/R account must match the `receivablesAccount` used in all linked transactions. example: 80000001-1234567890 type: string maxLength: 36 transactionDate: type: string format: date description: >- The date of this receive-payment, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-01' refNumber: description: >- The case-sensitive user-defined reference number for this receive-payment, 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. When left blank in this create request, this field will be left blank in QuickBooks (i.e., it does *not* auto-increment). Maximum length: 20 characters. example: PAYMENT-1234 type: string maxLength: 20 totalAmount: type: string description: >- The total monetary amount of this receive-payment, represented as a decimal string. **NOTE**: The sum of the `paymentAmount` amounts in the `applyToTransactions` array cannot exceed the `totalAmount`, or you will receive an error. Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45"). example: '1000.00' exchangeRate: description: >- The market exchange rate between this receive-payment'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: 1.2345 type: number paymentMethodId: description: >- The receive-payment's payment method (e.g., cash, check, credit card). **NOTE**: If this receive-payment contains credit card transaction data supplied from QuickBooks Merchant Services (QBMS) transaction responses, you must specify a credit card payment method (e.g., "Visa", "MasterCard", etc.). example: 80000001-1234567890 type: string maxLength: 36 memo: description: >- A memo or note for this receive-payment that will be displayed at the beginning of reports containing details about this receive-payment. example: Payment received at store location - cash type: string depositToAccountId: description: >- The account where the funds for this receive-payment will be or have been deposited. If omitted, QuickBooks Desktop uses the default Undeposited Funds account configured in the company file. example: 80000001-1234567890 type: string maxLength: 36 creditCardTransaction: description: >- The credit card transaction data for this receive-payment's payment when using QuickBooks Merchant Services (QBMS). If specifying this field, you must also specify the `paymentMethod` field. type: object properties: request: description: >- The transaction request data originally supplied for this credit card transaction when using QuickBooks Merchant Services (QBMS). type: object properties: number: type: string description: >- The credit card number. Must be masked with lower case "x" and no dashes. example: xxxxxxxxxxxx1234 expirationMonth: description: The month when the credit card expires. example: 12 type: number expirationYear: description: The year when the credit card expires. example: 2024 type: number name: type: string description: The cardholder's name on the card. example: John Doe address: description: The card's billing address. example: 1234 Main St, Anytown, USA, 12345 type: string postalCode: description: The card's billing address ZIP or postal code. example: '12345' type: string commercialCardCode: description: >- The commercial card code identifies the type of business credit card being used (purchase, corporate, or business) for Visa and Mastercard transactions only. When provided, this code may qualify the transaction for lower processing fees compared to the standard rates that apply when no code is specified. example: corporate type: string transactionMode: description: >- Indicates whether this credit card transaction came from a card swipe (`card_present`) or not (`card_not_present`). example: card_not_present type: string enum: - card_not_present - card_present default: card_not_present transactionType: description: >- The QBMS transaction type from which the current transaction data originated. example: charge type: string enum: - authorization - capture - charge - refund - voice_authorization required: - number - expirationMonth - expirationYear - name additionalProperties: false response: description: >- The transaction response data for this credit card transaction when using QuickBooks Merchant Services (QBMS). type: object properties: statusCode: description: >- The status code returned in the original QBMS transaction response for this credit card transaction. example: 0 type: number statusMessage: type: string description: >- The status message returned in the original QBMS transaction response for this credit card transaction. example: Success creditCardTransactionId: type: string description: >- The ID returned from the credit card processor for this credit card transaction. example: '1234567890' merchantAccountNumber: type: string description: >- The QBMS account number of the merchant who is running this transaction using the customer's credit card. example: '1234567890' authorizationCode: description: >- The authorization code returned from the credit card processor to indicate that this charge will be paid by the card issuer. example: '1234567890' type: string avsStreetStatus: description: >- Indicates whether the street address supplied in the transaction request matches the customer's address on file at the card issuer. example: pass type: string enum: - fail - not_available - pass avsZipStatus: description: >- Indicates whether the customer postal ZIP code supplied in the transaction request matches the customer's postal code recognized at the card issuer. example: pass type: string enum: - fail - not_available - pass cardSecurityCodeMatch: description: >- Indicates whether the card security code supplied in the transaction request matches the card security code recognized for that credit card number at the card issuer. example: pass type: string enum: - fail - not_available - pass reconBatchId: description: >- An internal ID returned by QuickBooks Merchant Services (QBMS) from the transaction request, needed for the QuickBooks reconciliation feature. example: '1234567890' type: string paymentGroupingCode: description: >- An internal code returned by QuickBooks Merchant Services (QBMS) from the transaction request, needed for the QuickBooks reconciliation feature. example: 2 type: number paymentStatus: description: >- Indicates whether this credit card transaction is known to have been successfully processed by the card issuer. example: completed type: string enum: - completed - unknown transactionAuthorizedAt: type: string description: >- The date and time when the credit card processor authorized this credit card transaction. example: 2024-01-01T12:34:56.000Z transactionAuthorizationStamp: description: >- An internal value for this credit card transaction, needed for the QuickBooks reconciliation feature. example: 2 type: number clientTransactionId: description: >- A value returned from QBMS transactions for future use by the QuickBooks Reconciliation feature. example: '1234567890' type: string required: - statusCode - statusMessage - creditCardTransactionId - merchantAccountNumber - paymentStatus - transactionAuthorizedAt additionalProperties: false additionalProperties: false externalId: type: string format: uuid description: >- 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. **IMPORTANT**: This field must be formatted as a valid GUID; otherwise, QuickBooks will return an error. example: 12345678-abcd-1234-abcd-1234567890ab isAutoApply: description: >- When `true`, QuickBooks applies `totalAmount` to any outstanding transaction that exactly matches `totalAmount`. If no exact match is found, this receive-payment is applied to the oldest outstanding transaction for the customer-job. When `false`, QuickBooks records the payment but does not apply it to any specific transaction, causing the amount to appear as a credit on the customer-job's next transaction. **IMPORTANT**: You must specify either `isAutoApply` or `applyToTransactions` when creating a receive-payment, but never both. example: false default: false type: boolean applyToTransactions: description: >- The invoices to be paid by this receive-payment. This will create a link between this receive-payment and the specified invoices. **IMPORTANT**: In each `applyToTransactions` object, you must specify either `paymentAmount`, `applyCredits`, `discountAmount`, or any combination of these; if none of these are specified, you will receive an error for an empty transaction. **IMPORTANT**: The target invoice must have `isPaid=false`, otherwise, QuickBooks will report this object as "cannot be found". **NOTE**: You must specify either `isAutoApply` or `applyToTransactions` when creating a receive-payment, but never both. minItems: 1 type: array items: type: object properties: transactionId: type: string maxLength: 36 description: >- The ID of the target transaction to which this payment is applied. example: 123ABC-1234567890 paymentAmount: description: >- The monetary amount to apply to the target transaction, represented as a decimal string. Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45"). example: '25.00' type: string applyCredits: description: >- Credits to apply to this target transaction, reducing its balance. This creates a link between this target transaction and the specified credit transactions. **IMPORTANT**: By default, QuickBooks will not return any information about the linked transactions in this endpoint's response even when this request is successful. To see the transactions linked via this field, refetch the target transaction and check the `linkedTransactions` response field. If fetching a list of target transactions, you must also specify the parameter `includeLinkedTransactions=true` to see the `linkedTransactions` response field. minItems: 1 type: array items: type: object properties: creditTransactionId: type: string maxLength: 36 description: >- The unique identifier of the credit transaction to apply to this transaction, such as a credit memo, vendor credit, or journal-entry credit. example: ABCDEF-1234567890 appliedAmount: type: string description: >- The amount of the selected credit transaction to apply to this transaction, represented as a decimal string. Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45"). example: '100.00' overrideCreditApplication: description: Indicates whether to override the credit. example: false default: false type: boolean required: - creditTransactionId - appliedAmount additionalProperties: false discountAmount: description: >- The monetary amount by which to reduce this target transaction's balance, represented as a decimal string. Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45"). example: '50.00' type: string discountAccountId: description: >- The financial account used to track this target transaction's discount. example: 80000001-1234567890 type: string maxLength: 36 discountClassId: description: >- The class used to track this target transaction's discount. example: 80000001-1234567890 type: string maxLength: 36 required: - transactionId additionalProperties: false required: - customerId - transactionDate - totalAmount additionalProperties: false responses: '200': description: Returns the newly created receive-payment. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_receive_payment' x-codeSamples: - lang: JavaScript source: |- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const receivePayment = await conductor.qbd.receivePayments.create({ customerId: '80000001-1234567890', totalAmount: '1000.00', transactionDate: '2024-10-01', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(receivePayment.id); - lang: Python source: |- import os from datetime import date from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) receive_payment = conductor.qbd.receive_payments.create( customer_id="80000001-1234567890", total_amount="1000.00", transaction_date=date.fromisoformat("2024-10-01"), conductor_end_user_id="end_usr_1234567abcdefg", ) print(receive_payment.id) /quickbooks-desktop/receive-payments/{id}: get: summary: Retrieve a receive-payment description: >- Retrieves a receive-payment by ID. **IMPORTANT:** If you need to fetch multiple specific receive-payments 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. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the receive-payment to retrieve. example: 123ABC-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the receive-payment to retrieve. responses: '200': description: Returns the specified receive-payment. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_receive_payment' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const receivePayment = await conductor.qbd.receivePayments.retrieve('123ABC-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(receivePayment.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) receive_payment = conductor.qbd.receive_payments.retrieve( id="123ABC-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(receive_payment.id) post: summary: Update a receive-payment description: >- Updates a received payment. When you resubmit applications to invoices, keep them on the same accounts receivable account and include the payment amount, discount, or credit on every allocation you send. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the receive-payment to update. example: 123ABC-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the receive-payment to update. requestBody: required: true content: application/json: schema: type: object properties: revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of the receive-payment 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. example: '1721172183' customerId: description: >- The customer or customer-job to which the payment for this receive-payment is credited. example: 80000001-1234567890 type: string maxLength: 36 receivablesAccountId: description: >- The Accounts-Receivable (A/R) account to which this receive-payment is assigned, used to track the amount owed. If omitted, QuickBooks Desktop uses the default A/R account configured in the company file. **IMPORTANT**: If this receive-payment is linked to other transactions, this A/R account must match the `receivablesAccount` used in all linked transactions. example: 80000001-1234567890 type: string maxLength: 36 transactionDate: description: >- The date of this receive-payment, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-01' type: string format: date refNumber: description: >- The case-sensitive user-defined reference number for this receive-payment, 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: 20 characters. example: PAYMENT-1234 type: string maxLength: 20 totalAmount: description: >- The total monetary amount of this receive-payment, represented as a decimal string. **NOTE**: The sum of the `paymentAmount` amounts in the `applyToTransactions` array cannot exceed the `totalAmount`, or you will receive an error. Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45"). example: '1000.00' type: string exchangeRate: description: >- The market exchange rate between this receive-payment'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: 1.2345 type: number paymentMethodId: description: >- The receive-payment's payment method (e.g., cash, check, credit card). example: 80000001-1234567890 type: string maxLength: 36 memo: description: >- A memo or note for this receive-payment that will be displayed at the beginning of reports containing details about this receive-payment. example: Payment received at store location - cash type: string depositToAccountId: description: >- The account where the funds for this receive-payment will be or have been deposited. example: 80000001-1234567890 type: string maxLength: 36 creditCardTransaction: description: >- The credit card transaction data for this receive-payment's payment when using QuickBooks Merchant Services (QBMS). If specifying this field, you must also specify the `paymentMethod` field. type: object properties: request: description: >- The transaction request data originally supplied for this credit card transaction when using QuickBooks Merchant Services (QBMS). type: object properties: number: description: >- The credit card number. Must be masked with lower case "x" and no dashes. example: xxxxxxxxxxxx1234 type: string expirationMonth: description: The month when the credit card expires. example: 12 type: number expirationYear: description: The year when the credit card expires. example: 2024 type: number name: description: The cardholder's name on the card. example: John Doe type: string address: description: The card's billing address. example: 1234 Main St, Anytown, USA, 12345 type: string postalCode: description: The card's billing address ZIP or postal code. example: '12345' type: string commercialCardCode: description: >- The commercial card code identifies the type of business credit card being used (purchase, corporate, or business) for Visa and Mastercard transactions only. When provided, this code may qualify the transaction for lower processing fees compared to the standard rates that apply when no code is specified. example: corporate type: string transactionMode: description: >- Indicates whether this credit card transaction came from a card swipe (`card_present`) or not (`card_not_present`). example: card_not_present type: string enum: - card_not_present - card_present transactionType: description: >- The QBMS transaction type from which the current transaction data originated. example: charge type: string enum: - authorization - capture - charge - refund - voice_authorization additionalProperties: false response: description: >- The transaction response data for this credit card transaction when using QuickBooks Merchant Services (QBMS). type: object properties: statusCode: description: >- The status code returned in the original QBMS transaction response for this credit card transaction. example: 0 type: number statusMessage: description: >- The status message returned in the original QBMS transaction response for this credit card transaction. example: Success type: string creditCardTransactionId: description: >- The ID returned from the credit card processor for this credit card transaction. example: '1234567890' type: string merchantAccountNumber: description: >- The QBMS account number of the merchant who is running this transaction using the customer's credit card. example: '1234567890' type: string authorizationCode: description: >- The authorization code returned from the credit card processor to indicate that this charge will be paid by the card issuer. example: '1234567890' type: string avsStreetStatus: description: >- Indicates whether the street address supplied in the transaction request matches the customer's address on file at the card issuer. example: pass type: string enum: - fail - not_available - pass avsZipStatus: description: >- Indicates whether the customer postal ZIP code supplied in the transaction request matches the customer's postal code recognized at the card issuer. example: pass type: string enum: - fail - not_available - pass cardSecurityCodeMatch: description: >- Indicates whether the card security code supplied in the transaction request matches the card security code recognized for that credit card number at the card issuer. example: pass type: string enum: - fail - not_available - pass reconBatchId: description: >- An internal ID returned by QuickBooks Merchant Services (QBMS) from the transaction request, needed for the QuickBooks reconciliation feature. example: '1234567890' type: string paymentGroupingCode: description: >- An internal code returned by QuickBooks Merchant Services (QBMS) from the transaction request, needed for the QuickBooks reconciliation feature. example: 2 type: number paymentStatus: description: >- Indicates whether this credit card transaction is known to have been successfully processed by the card issuer. example: completed type: string enum: - completed - unknown transactionAuthorizedAt: description: >- The date and time when the credit card processor authorized this credit card transaction. example: 2024-01-01T12:34:56.000Z type: string transactionAuthorizationStamp: description: >- An internal value for this credit card transaction, needed for the QuickBooks reconciliation feature. example: 2 type: number clientTransactionId: description: >- A value returned from QBMS transactions for future use by the QuickBooks Reconciliation feature. example: '1234567890' type: string additionalProperties: false additionalProperties: false applyToTransactions: description: >- The invoices to be paid by this receive-payment. This will create a link between this receive-payment and the specified invoices. **IMPORTANT**: In each `applyToTransactions` object, you must specify either `paymentAmount`, `applyCredits`, `discountAmount`, or any combination of these; if none of these are specified, you will receive an error for an empty transaction. **IMPORTANT**: The target invoice must have `isPaid=false`, otherwise, QuickBooks will report this object as "cannot be found". minItems: 1 type: array items: type: object properties: transactionId: type: string maxLength: 36 description: >- The ID of the target transaction to which this payment is applied. example: 123ABC-1234567890 paymentAmount: description: >- The monetary amount to apply to the target transaction, represented as a decimal string. Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45"). example: '25.00' type: string applyCredits: description: >- Credits to apply to this target transaction, reducing its balance. This creates a link between this target transaction and the specified credit transactions. **IMPORTANT**: By default, QuickBooks will not return any information about the linked transactions in this endpoint's response even when this request is successful. To see the transactions linked via this field, refetch the target transaction and check the `linkedTransactions` response field. If fetching a list of target transactions, you must also specify the parameter `includeLinkedTransactions=true` to see the `linkedTransactions` response field. minItems: 1 type: array items: type: object properties: creditTransactionId: type: string maxLength: 36 description: >- The unique identifier of the credit transaction to apply to this transaction, such as a credit memo, vendor credit, or journal-entry credit. example: ABCDEF-1234567890 appliedAmount: type: string description: >- The amount of the selected credit transaction to apply to this transaction, represented as a decimal string. Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45"). example: '100.00' overrideCreditApplication: description: Indicates whether to override the credit. example: false default: false type: boolean required: - creditTransactionId - appliedAmount additionalProperties: false discountAmount: description: >- The monetary amount by which to reduce this target transaction's balance, represented as a decimal string. Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45"). example: '50.00' type: string discountAccountId: description: >- The financial account used to track this target transaction's discount. example: 80000001-1234567890 type: string maxLength: 36 discountClassId: description: >- The class used to track this target transaction's discount. example: 80000001-1234567890 type: string maxLength: 36 required: - transactionId additionalProperties: false required: - revisionNumber additionalProperties: false responses: '200': description: Returns the updated receive-payment. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_receive_payment' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const receivePayment = await conductor.qbd.receivePayments.update('123ABC-1234567890', { revisionNumber: '1721172183', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(receivePayment.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) receive_payment = conductor.qbd.receive_payments.update( id="123ABC-1234567890", revision_number="1721172183", conductor_end_user_id="end_usr_1234567abcdefg", ) print(receive_payment.id) delete: summary: Delete a receive-payment description: >- Permanently deletes a receive-payment. The deletion will fail if the receive-payment is currently in use or has any linked transactions that are in use. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the receive-payment to delete. example: 123ABC-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the receive-payment to delete. responses: '200': description: >- Returns a confirmation of the deletion with the ID of the deleted receive-payment. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: id: type: string description: >- The QuickBooks-assigned unique identifier of the deleted receive-payment. example: 123ABC-1234567890 objectType: description: >- The type of object. This value is always `"qbd_receive_payment"`. example: qbd_receive_payment type: string const: qbd_receive_payment refNumber: anyOf: - type: string - type: 'null' description: >- The case-sensitive user-defined reference number of the deleted receive-payment. example: PAYMENT-1234 deleted: type: boolean description: Indicates whether the receive-payment was deleted. example: true required: - id - objectType - refNumber - deleted additionalProperties: false x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const receivePayment = await conductor.qbd.receivePayments.delete('123ABC-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(receivePayment.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) receive_payment = conductor.qbd.receive_payments.delete( id="123ABC-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(receive_payment.id) /quickbooks-desktop/reports/general-summary: get: summary: Retrieve a general summary report description: >- Retrieves a QuickBooks Desktop general summary report, such as a balance sheet, profit and loss, trial balance, sales, purchase, inventory, customer balance, vendor balance, sales tax, or income tax summary. This report is useful for aggregated financial or operational totals with optional date periods, filters, calendar settings, and column summarization. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: query name: reportType schema: type: string enum: - balance_sheet_by_class - balance_sheet_previous_year_comparison - balance_sheet_standard - balance_sheet_summary - customer_balance_summary - expense_by_vendor_summary - income_by_customer_summary - inventory_stock_status_by_item - inventory_stock_status_by_vendor - income_tax_summary - inventory_valuation_summary - inventory_valuation_summary_by_site - lot_number_in_stock_by_site - physical_inventory_worksheet - profit_and_loss_by_class - profit_and_loss_by_job - profit_and_loss_previous_year_comparison - profit_and_loss_standard - profit_and_loss_ytd_comparison - purchase_by_item_summary - purchase_by_vendor_summary - sales_by_customer_summary - sales_by_item_summary - sales_by_sales_representative_summary - sales_tax_liability - sales_tax_revenue_summary - serial_number_in_stock_by_site - trial_balance - vendor_balance_summary description: The general summary report type to retrieve. example: balance_sheet_by_class required: true description: The general summary report type to retrieve. - in: query name: reportDateFrom schema: description: >- Filter report rows dated on or after this date, in ISO 8601 format (YYYY-MM-DD). Choose either `reportDateMacro` or `reportDateFrom`/`reportDateTo`. If you omit `reportDateFrom`, `reportDateTo`, and `reportDateMacro`, QuickBooks Desktop uses the current fiscal year to date. example: '2025-01-01' type: string format: date description: >- Filter report rows dated on or after this date, in ISO 8601 format (YYYY-MM-DD). Choose either `reportDateMacro` or `reportDateFrom`/`reportDateTo`. If you omit `reportDateFrom`, `reportDateTo`, and `reportDateMacro`, QuickBooks Desktop uses the current fiscal year to date. - in: query name: reportDateTo schema: description: >- Filter report rows dated on or before this date, in ISO 8601 format (YYYY-MM-DD). Choose either `reportDateMacro` or `reportDateFrom`/`reportDateTo`. If you omit `reportDateFrom`, `reportDateTo`, and `reportDateMacro`, QuickBooks Desktop uses the current fiscal year to date. example: '2025-02-01' type: string format: date description: >- Filter report rows dated on or before this date, in ISO 8601 format (YYYY-MM-DD). Choose either `reportDateMacro` or `reportDateFrom`/`reportDateTo`. If you omit `reportDateFrom`, `reportDateTo`, and `reportDateMacro`, QuickBooks Desktop uses the current fiscal year to date. - in: query name: reportDateMacro schema: description: >- A QuickBooks Desktop relative date macro for the report period. Choose either `reportDateMacro` or `reportDateFrom`/`reportDateTo`. example: this_year_to_date type: string enum: - all - today - this_week - this_week_to_date - this_month - this_month_to_date - this_quarter - this_quarter_to_date - this_year - this_year_to_date - yesterday - last_week - last_week_to_date - last_month - last_month_to_date - last_quarter - last_quarter_to_date - last_year - last_year_to_date - next_week - next_four_weeks - next_month - next_quarter - next_year description: >- A QuickBooks Desktop relative date macro for the report period. Choose either `reportDateMacro` or `reportDateFrom`/`reportDateTo`. - in: query name: accountType schema: description: >- Filter report rows by account type. Choose only one account filter per request: `accountType`, `accountIds`, or `accountFullNames`. example: bank type: string enum: - accounts_payable - accounts_receivable - allowed_for_1099 - ap_and_sales_tax - ap_or_credit_card - ar_and_ap - asset - balance_sheet - bank - bank_and_ar_and_ap_and_uf - bank_and_uf - cost_of_sales - credit_card - current_asset - current_asset_and_expense - current_liability - equity - equity_and_income_and_expense - expense_and_other_expense - fixed_asset - income_and_expense - income_and_other_income - liability - liability_and_equity - long_term_liability - non_posting - ordinary_expense - ordinary_income - ordinary_income_and_cogs - ordinary_income_and_expense - other_asset - other_current_asset - other_current_liability - other_expense - other_income - other_income_or_expense description: >- Filter report rows by account type. Choose only one account filter per request: `accountType`, `accountIds`, or `accountFullNames`. - in: query name: accountIds schema: description: >- Filter report rows by QuickBooks-assigned account IDs. Accepts one or more account IDs. Choose only one account filter per request: `accountType`, `accountIds`, or `accountFullNames`. example: - 80000001-1234567890 type: array items: type: string description: >- Filter report rows by QuickBooks-assigned account IDs. Accepts one or more account IDs. Choose only one account filter per request: `accountType`, `accountIds`, or `accountFullNames`. - in: query name: accountFullNames schema: description: >- Filter report rows by account `fullName` values, case-insensitive. A `fullName` is a fully qualified QuickBooks name formed by joining parent object names with the object's `name` using colons. Accepts one or more account full names. Choose only one account filter per request: `accountType`, `accountIds`, or `accountFullNames`. example: - Corporate:Accounts-Payable type: array items: type: string description: >- Filter report rows by account `fullName` values, case-insensitive. A `fullName` is a fully qualified QuickBooks name formed by joining parent object names with the object's `name` using colons. Accepts one or more account full names. Choose only one account filter per request: `accountType`, `accountIds`, or `accountFullNames`. - in: query name: entityType schema: description: >- Filter report rows by entity type, such as customer, vendor, employee, or other name. Choose only one entity filter per request: `entityType`, `entityIds`, or `entityFullNames`. example: customer type: string enum: - customer - employee - other_name - vendor description: >- Filter report rows by entity type, such as customer, vendor, employee, or other name. Choose only one entity filter per request: `entityType`, `entityIds`, or `entityFullNames`. - in: query name: entityIds schema: description: >- Filter report rows by QuickBooks-assigned entity IDs. Accepts one or more entity IDs. Choose only one entity filter per request: `entityType`, `entityIds`, or `entityFullNames`. example: - 80000001-1234567890 type: array items: type: string description: >- Filter report rows by QuickBooks-assigned entity IDs. Accepts one or more entity IDs. Choose only one entity filter per request: `entityType`, `entityIds`, or `entityFullNames`. - in: query name: entityFullNames schema: description: >- Filter report rows by entity `fullName` values, case-insensitive. A `fullName` is a fully qualified QuickBooks name formed by joining parent object names with the object's `name` using colons. Accepts one or more entity full names. Choose only one entity filter per request: `entityType`, `entityIds`, or `entityFullNames`. example: - ABC Corporation:Website Redesign Project type: array items: type: string description: >- Filter report rows by entity `fullName` values, case-insensitive. A `fullName` is a fully qualified QuickBooks name formed by joining parent object names with the object's `name` using colons. Accepts one or more entity full names. Choose only one entity filter per request: `entityType`, `entityIds`, or `entityFullNames`. - in: query name: itemType schema: description: >- Filter report rows by item type. Choose only one item filter per request: `itemType`, `itemIds`, or `itemFullNames`. example: inventory type: string enum: - all_except_fixed_asset - assembly - discount - fixed_asset - inventory - inventory_and_assembly - non_inventory - other_charge - payment - sales - sales_tax - service description: >- Filter report rows by item type. Choose only one item filter per request: `itemType`, `itemIds`, or `itemFullNames`. - in: query name: itemIds schema: description: >- Filter report rows by QuickBooks-assigned item IDs. Accepts one or more item IDs. Choose only one item filter per request: `itemType`, `itemIds`, or `itemFullNames`. example: - 80000001-1234567890 type: array items: type: string description: >- Filter report rows by QuickBooks-assigned item IDs. Accepts one or more item IDs. Choose only one item filter per request: `itemType`, `itemIds`, or `itemFullNames`. - in: query name: itemFullNames schema: description: >- Filter report rows by item `fullName` values, case-insensitive. A `fullName` is a fully qualified QuickBooks name formed by joining parent object names with the object's `name` using colons. Accepts one or more item full names. Choose only one item filter per request: `itemType`, `itemIds`, or `itemFullNames`. example: - Services:Consulting type: array items: type: string description: >- Filter report rows by item `fullName` values, case-insensitive. A `fullName` is a fully qualified QuickBooks name formed by joining parent object names with the object's `name` using colons. Accepts one or more item full names. Choose only one item filter per request: `itemType`, `itemIds`, or `itemFullNames`. - in: query name: classIds schema: description: >- Filter report rows by QuickBooks-assigned class IDs. Accepts one or more class IDs. Choose only one class filter per request: `classIds` or `classFullNames`. example: - 80000001-1234567890 type: array items: type: string description: >- Filter report rows by QuickBooks-assigned class IDs. Accepts one or more class IDs. Choose only one class filter per request: `classIds` or `classFullNames`. - in: query name: classFullNames schema: description: >- Filter report rows by class `fullName` values, case-insensitive. A `fullName` is a fully qualified QuickBooks name formed by joining parent object names with the object's `name` using colons. Accepts one or more class full names. Choose only one class filter per request: `classIds` or `classFullNames`. example: - Department:Marketing type: array items: type: string description: >- Filter report rows by class `fullName` values, case-insensitive. A `fullName` is a fully qualified QuickBooks name formed by joining parent object names with the object's `name` using colons. Accepts one or more class full names. Choose only one class filter per request: `classIds` or `classFullNames`. - in: query name: transactionTypes schema: description: >- Filter report rows by transaction type. Accepts one or more transaction types. example: - invoice - sales_receipt type: array items: type: string enum: - all - 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 description: >- Filter report rows by transaction type. Accepts one or more transaction types. - in: query name: detailLevel schema: description: >- The report detail level to include. Use `all` for all rows, `all_except_summary` to omit summary rows, or `summary_only` to return only summary rows. example: all_except_summary type: string enum: - all - all_except_summary - summary_only default: all description: >- The report detail level to include. Use `all` for all rows, `all_except_summary` to omit summary rows, or `summary_only` to return only summary rows. - in: query name: postingStatus schema: description: >- Filter report rows that are posting, non-posting, or either. Posting status refers to whether QuickBooks records the transaction in an account register. example: posting type: string enum: - either - non_posting - posting description: >- Filter report rows that are posting, non-posting, or either. Posting status refers to whether QuickBooks records the transaction in an account register. - in: query name: updatedAfter schema: description: >- Filter report rows updated on or after this date, in ISO 8601 format (YYYY-MM-DD). Choose either `updatedDateMacro` or `updatedAfter`/`updatedBefore`. example: '2025-01-01' type: string format: date description: >- Filter report rows updated on or after this date, in ISO 8601 format (YYYY-MM-DD). Choose either `updatedDateMacro` or `updatedAfter`/`updatedBefore`. - in: query name: updatedBefore schema: description: >- Filter report rows updated on or before this date, in ISO 8601 format (YYYY-MM-DD). Choose either `updatedDateMacro` or `updatedAfter`/`updatedBefore`. example: '2025-02-01' type: string format: date description: >- Filter report rows updated on or before this date, in ISO 8601 format (YYYY-MM-DD). Choose either `updatedDateMacro` or `updatedAfter`/`updatedBefore`. - in: query name: updatedDateMacro schema: description: >- A QuickBooks Desktop relative updated-date macro. Choose either `updatedDateMacro` or `updatedAfter`/`updatedBefore`. example: this_month_to_date type: string enum: - all - today - this_week - this_week_to_date - this_month - this_month_to_date - this_quarter - this_quarter_to_date - this_year - this_year_to_date - yesterday - last_week - last_week_to_date - last_month - last_month_to_date - last_quarter - last_quarter_to_date - last_year - last_year_to_date - next_week - next_four_weeks - next_month - next_quarter - next_year description: >- A QuickBooks Desktop relative updated-date macro. Choose either `updatedDateMacro` or `updatedAfter`/`updatedBefore`. - in: query name: reportCalendar schema: description: The type of year to use for the report. example: calendar_year type: string enum: - calendar_year - fiscal_year - tax_year description: The type of year to use for the report. - in: query name: rowsToReturn schema: description: >- Filters which report rows QuickBooks returns. Use `active_only` for active rows, `non_zero` for rows with non-zero values, or `all` for all rows. example: all type: string enum: - active_only - non_zero - all description: >- Filters which report rows QuickBooks returns. Use `active_only` for active rows, `non_zero` for rows with non-zero values, or `all` for all rows. - in: query name: columnsToReturn schema: description: >- Filters which report columns QuickBooks returns. Use `active_only` for active columns, `non_zero` for columns with non-zero values, or `all` for all columns. example: all type: string enum: - active_only - non_zero - all description: >- Filters which report columns QuickBooks returns. Use `active_only` for active columns, `non_zero` for columns with non-zero values, or `all` for all columns. - in: query name: summarizeColumnsBy schema: description: >- How QuickBooks Desktop calculates report data and labels report column headers. example: month type: string enum: - account - balance_sheet - class - customer - customer_type - day - employee - four_week - half_month - income_statement - item_detail - item_type - month - payee - payment_method - payroll_item_detail - payroll_ytd_detail - quarter - sales_representative - sales_tax_code - shipping_method - terms - total_only - two_week - vendor - vendor_type - week - year description: >- How QuickBooks Desktop calculates report data and labels report column headers. - in: query name: includeSubcolumns schema: description: >- Whether to include subcolumns in the report. **NOTE**: QuickBooks Desktop may still omit subcolumns that it can easily compute from other returned values. example: true type: boolean description: >- Whether to include subcolumns in the report. **NOTE**: QuickBooks Desktop may still omit subcolumns that it can easily compute from other returned values. - in: query name: basis schema: description: >- The accounting basis to use for the report. Use `cash` to base income and expenses on when money changes hands, `accrual` to base them on invoice and bill dates, or `none` to use the QuickBooks Desktop default for the report. example: accrual type: string enum: - accrual - cash - none default: none description: >- The accounting basis to use for the report. Use `cash` to base income and expenses on when money changes hands, `accrual` to base them on invoice and bill dates, or `none` to use the QuickBooks Desktop default for the report. responses: '200': description: Returns the requested general summary report. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_report' x-codeSamples: - lang: JavaScript source: |- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const report = await conductor.qbd.reports.generalSummary({ reportType: 'balance_sheet_by_class', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(report.basis); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) report = conductor.qbd.reports.general_summary( report_type="balance_sheet_by_class", conductor_end_user_id="end_usr_1234567abcdefg", ) print(report.basis) /quickbooks-desktop/reports/general-detail: get: summary: Retrieve a general detail report description: >- Retrieves a QuickBooks Desktop general detail report with transaction-level rows, such as General Ledger, Journal, Open Invoices, unpaid bills, sales detail, purchase detail, audit trail, and transaction lists. This report is useful for inspecting the transactions behind balances, receivables, payables, sales, purchases, inventory valuation, and audit activity, including report-only columns that may not be available from standard object queries. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: query name: reportType schema: type: string enum: - 1099_detail - audit_trail - balance_sheet_detail - check_detail - customer_balance_detail - deposit_detail - estimates_by_job - expense_by_vendor_detail - general_ledger - income_by_customer_detail - income_tax_detail - inventory_valuation_detail - job_progress_invoices_vs_estimates - journal - missing_checks - open_invoices - open_purchase_orders - open_purchase_orders_by_job - open_sales_order_by_customer - open_sales_order_by_item - pending_sales - profit_and_loss_detail - purchase_by_item_detail - purchase_by_vendor_detail - sales_by_customer_detail - sales_by_item_detail - sales_by_sales_representative_detail - transaction_detail_by_account - transaction_list_by_customer - transaction_list_by_date - transaction_list_by_vendor - unpaid_bills_detail - unbilled_costs_by_job - vendor_balance_detail description: The general detail report type to retrieve. example: 1099_detail required: true description: The general detail report type to retrieve. - in: query name: reportDateFrom schema: description: >- Filter report rows dated on or after this date, in ISO 8601 format (YYYY-MM-DD). Choose either `reportDateMacro` or `reportDateFrom`/`reportDateTo`. If you omit `reportDateFrom`, `reportDateTo`, and `reportDateMacro`, QuickBooks Desktop uses the current fiscal year to date. example: '2025-01-01' type: string format: date description: >- Filter report rows dated on or after this date, in ISO 8601 format (YYYY-MM-DD). Choose either `reportDateMacro` or `reportDateFrom`/`reportDateTo`. If you omit `reportDateFrom`, `reportDateTo`, and `reportDateMacro`, QuickBooks Desktop uses the current fiscal year to date. - in: query name: reportDateTo schema: description: >- Filter report rows dated on or before this date, in ISO 8601 format (YYYY-MM-DD). Choose either `reportDateMacro` or `reportDateFrom`/`reportDateTo`. If you omit `reportDateFrom`, `reportDateTo`, and `reportDateMacro`, QuickBooks Desktop uses the current fiscal year to date. example: '2025-02-01' type: string format: date description: >- Filter report rows dated on or before this date, in ISO 8601 format (YYYY-MM-DD). Choose either `reportDateMacro` or `reportDateFrom`/`reportDateTo`. If you omit `reportDateFrom`, `reportDateTo`, and `reportDateMacro`, QuickBooks Desktop uses the current fiscal year to date. - in: query name: reportDateMacro schema: description: >- A QuickBooks Desktop relative date macro for the report period. Choose either `reportDateMacro` or `reportDateFrom`/`reportDateTo`. example: this_year_to_date type: string enum: - all - today - this_week - this_week_to_date - this_month - this_month_to_date - this_quarter - this_quarter_to_date - this_year - this_year_to_date - yesterday - last_week - last_week_to_date - last_month - last_month_to_date - last_quarter - last_quarter_to_date - last_year - last_year_to_date - next_week - next_four_weeks - next_month - next_quarter - next_year description: >- A QuickBooks Desktop relative date macro for the report period. Choose either `reportDateMacro` or `reportDateFrom`/`reportDateTo`. - in: query name: accountType schema: description: >- Filter report rows by account type. Choose only one account filter per request: `accountType`, `accountIds`, or `accountFullNames`. example: bank type: string enum: - accounts_payable - accounts_receivable - allowed_for_1099 - ap_and_sales_tax - ap_or_credit_card - ar_and_ap - asset - balance_sheet - bank - bank_and_ar_and_ap_and_uf - bank_and_uf - cost_of_sales - credit_card - current_asset - current_asset_and_expense - current_liability - equity - equity_and_income_and_expense - expense_and_other_expense - fixed_asset - income_and_expense - income_and_other_income - liability - liability_and_equity - long_term_liability - non_posting - ordinary_expense - ordinary_income - ordinary_income_and_cogs - ordinary_income_and_expense - other_asset - other_current_asset - other_current_liability - other_expense - other_income - other_income_or_expense description: >- Filter report rows by account type. Choose only one account filter per request: `accountType`, `accountIds`, or `accountFullNames`. - in: query name: accountIds schema: description: >- Filter report rows by QuickBooks-assigned account IDs. Accepts one or more account IDs. Choose only one account filter per request: `accountType`, `accountIds`, or `accountFullNames`. example: - 80000001-1234567890 type: array items: type: string description: >- Filter report rows by QuickBooks-assigned account IDs. Accepts one or more account IDs. Choose only one account filter per request: `accountType`, `accountIds`, or `accountFullNames`. - in: query name: accountFullNames schema: description: >- Filter report rows by account `fullName` values, case-insensitive. A `fullName` is a fully qualified QuickBooks name formed by joining parent object names with the object's `name` using colons. Accepts one or more account full names. Choose only one account filter per request: `accountType`, `accountIds`, or `accountFullNames`. example: - Corporate:Accounts-Payable type: array items: type: string description: >- Filter report rows by account `fullName` values, case-insensitive. A `fullName` is a fully qualified QuickBooks name formed by joining parent object names with the object's `name` using colons. Accepts one or more account full names. Choose only one account filter per request: `accountType`, `accountIds`, or `accountFullNames`. - in: query name: entityType schema: description: >- Filter report rows by entity type, such as customer, vendor, employee, or other name. Choose only one entity filter per request: `entityType`, `entityIds`, or `entityFullNames`. example: customer type: string enum: - customer - employee - other_name - vendor description: >- Filter report rows by entity type, such as customer, vendor, employee, or other name. Choose only one entity filter per request: `entityType`, `entityIds`, or `entityFullNames`. - in: query name: entityIds schema: description: >- Filter report rows by QuickBooks-assigned entity IDs. Accepts one or more entity IDs. Choose only one entity filter per request: `entityType`, `entityIds`, or `entityFullNames`. example: - 80000001-1234567890 type: array items: type: string description: >- Filter report rows by QuickBooks-assigned entity IDs. Accepts one or more entity IDs. Choose only one entity filter per request: `entityType`, `entityIds`, or `entityFullNames`. - in: query name: entityFullNames schema: description: >- Filter report rows by entity `fullName` values, case-insensitive. A `fullName` is a fully qualified QuickBooks name formed by joining parent object names with the object's `name` using colons. Accepts one or more entity full names. Choose only one entity filter per request: `entityType`, `entityIds`, or `entityFullNames`. example: - ABC Corporation:Website Redesign Project type: array items: type: string description: >- Filter report rows by entity `fullName` values, case-insensitive. A `fullName` is a fully qualified QuickBooks name formed by joining parent object names with the object's `name` using colons. Accepts one or more entity full names. Choose only one entity filter per request: `entityType`, `entityIds`, or `entityFullNames`. - in: query name: itemType schema: description: >- Filter report rows by item type. Choose only one item filter per request: `itemType`, `itemIds`, or `itemFullNames`. example: inventory type: string enum: - all_except_fixed_asset - assembly - discount - fixed_asset - inventory - inventory_and_assembly - non_inventory - other_charge - payment - sales - sales_tax - service description: >- Filter report rows by item type. Choose only one item filter per request: `itemType`, `itemIds`, or `itemFullNames`. - in: query name: itemIds schema: description: >- Filter report rows by QuickBooks-assigned item IDs. Accepts one or more item IDs. Choose only one item filter per request: `itemType`, `itemIds`, or `itemFullNames`. example: - 80000001-1234567890 type: array items: type: string description: >- Filter report rows by QuickBooks-assigned item IDs. Accepts one or more item IDs. Choose only one item filter per request: `itemType`, `itemIds`, or `itemFullNames`. - in: query name: itemFullNames schema: description: >- Filter report rows by item `fullName` values, case-insensitive. A `fullName` is a fully qualified QuickBooks name formed by joining parent object names with the object's `name` using colons. Accepts one or more item full names. Choose only one item filter per request: `itemType`, `itemIds`, or `itemFullNames`. example: - Services:Consulting type: array items: type: string description: >- Filter report rows by item `fullName` values, case-insensitive. A `fullName` is a fully qualified QuickBooks name formed by joining parent object names with the object's `name` using colons. Accepts one or more item full names. Choose only one item filter per request: `itemType`, `itemIds`, or `itemFullNames`. - in: query name: classIds schema: description: >- Filter report rows by QuickBooks-assigned class IDs. Accepts one or more class IDs. Choose only one class filter per request: `classIds` or `classFullNames`. example: - 80000001-1234567890 type: array items: type: string description: >- Filter report rows by QuickBooks-assigned class IDs. Accepts one or more class IDs. Choose only one class filter per request: `classIds` or `classFullNames`. - in: query name: classFullNames schema: description: >- Filter report rows by class `fullName` values, case-insensitive. A `fullName` is a fully qualified QuickBooks name formed by joining parent object names with the object's `name` using colons. Accepts one or more class full names. Choose only one class filter per request: `classIds` or `classFullNames`. example: - Department:Marketing type: array items: type: string description: >- Filter report rows by class `fullName` values, case-insensitive. A `fullName` is a fully qualified QuickBooks name formed by joining parent object names with the object's `name` using colons. Accepts one or more class full names. Choose only one class filter per request: `classIds` or `classFullNames`. - in: query name: transactionTypes schema: description: >- Filter report rows by transaction type. Accepts one or more transaction types. example: - invoice - sales_receipt type: array items: type: string enum: - all - 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 description: >- Filter report rows by transaction type. Accepts one or more transaction types. - in: query name: detailLevel schema: description: >- The report detail level to include. Use `all` for all rows, `all_except_summary` to omit summary rows, or `summary_only` to return only summary rows. example: all_except_summary type: string enum: - all - all_except_summary - summary_only default: all description: >- The report detail level to include. Use `all` for all rows, `all_except_summary` to omit summary rows, or `summary_only` to return only summary rows. - in: query name: postingStatus schema: description: >- Filter report rows that are posting, non-posting, or either. Posting status refers to whether QuickBooks records the transaction in an account register. example: posting type: string enum: - either - non_posting - posting description: >- Filter report rows that are posting, non-posting, or either. Posting status refers to whether QuickBooks records the transaction in an account register. - in: query name: updatedAfter schema: description: >- Filter report rows updated on or after this date, in ISO 8601 format (YYYY-MM-DD). Choose either `updatedDateMacro` or `updatedAfter`/`updatedBefore`. example: '2025-01-01' type: string format: date description: >- Filter report rows updated on or after this date, in ISO 8601 format (YYYY-MM-DD). Choose either `updatedDateMacro` or `updatedAfter`/`updatedBefore`. - in: query name: updatedBefore schema: description: >- Filter report rows updated on or before this date, in ISO 8601 format (YYYY-MM-DD). Choose either `updatedDateMacro` or `updatedAfter`/`updatedBefore`. example: '2025-02-01' type: string format: date description: >- Filter report rows updated on or before this date, in ISO 8601 format (YYYY-MM-DD). Choose either `updatedDateMacro` or `updatedAfter`/`updatedBefore`. - in: query name: updatedDateMacro schema: description: >- A QuickBooks Desktop relative updated-date macro. Choose either `updatedDateMacro` or `updatedAfter`/`updatedBefore`. example: this_month_to_date type: string enum: - all - today - this_week - this_week_to_date - this_month - this_month_to_date - this_quarter - this_quarter_to_date - this_year - this_year_to_date - yesterday - last_week - last_week_to_date - last_month - last_month_to_date - last_quarter - last_quarter_to_date - last_year - last_year_to_date - next_week - next_four_weeks - next_month - next_quarter - next_year description: >- A QuickBooks Desktop relative updated-date macro. Choose either `updatedDateMacro` or `updatedAfter`/`updatedBefore`. - in: query name: accountsToInclude schema: description: Whether to include all accounts or only accounts in use. example: all type: string enum: - all - in_use description: Whether to include all accounts or only accounts in use. - in: query name: openBalanceAsOf schema: description: >- The date through which QuickBooks Desktop calculates open balance information. example: report_end_date type: string enum: - report_end_date - today default: today description: >- The date through which QuickBooks Desktop calculates open balance information. - in: query name: summarizeRowsBy schema: description: >- How QuickBooks Desktop calculates report data and labels report rows. example: account type: string enum: - account - balance_sheet - class - customer - customer_type - day - employee - four_week - half_month - income_statement - item_detail - item_type - month - payee - payment_method - payroll_item_detail - payroll_ytd_detail - quarter - sales_representative - sales_tax_code - shipping_method - tax_line - terms - total_only - two_week - vendor - vendor_type - week - year description: >- How QuickBooks Desktop calculates report data and labels report rows. - in: query name: includeColumns schema: description: >- The report columns to include, by column type. Accepts one or more columns. **IMPORTANT**: When this parameter is present, QuickBooks Desktop omits its default report columns unless you include them here. example: - date - transaction_type - amount type: array items: type: string enum: - account - aging - amount - amount_difference - average_cost - billed_date - billing_status - calculated_amount - class - cleared_status - cost_price - credit - currency - date - debit - delivery_date - due_date - estimate_active - exchange_rate - shipment_origin - income_subject_to_tax - invoiced - item - description - last_modified_by - latest_or_prior_state - memo - updated_at - name - name_account_number - name_address - name_city - name_contact - name_email - name_fax - name_phone - name_state - name_postal_code - open_balance - original_amount - paid_amount - paid_status - paid_through_date - payment_method - payroll_item - purchase_order_number - print_status - progress_amount - progress_percent - quantity - quantity_available - quantity_on_hand - quantity_on_sales_order - received_quantity - ref_number - running_balance - sales_representative - sales_tax_code - serial_or_lot_number - shipping_date - shipping_method - source_name - split_account - ssn_or_tax_identification_number - tax_line - tax_table_version - terms - transaction_id - transaction_number - transaction_type - unit_price - user_edit - value_on_hand - wage_base - wage_base_tips description: >- The report columns to include, by column type. Accepts one or more columns. **IMPORTANT**: When this parameter is present, QuickBooks Desktop omits its default report columns unless you include them here. - in: query name: basis schema: description: >- The accounting basis to use for the report. Use `cash` to base income and expenses on when money changes hands, `accrual` to base them on invoice and bill dates, or `none` to use the QuickBooks Desktop default for the report. example: accrual type: string enum: - accrual - cash - none default: none description: >- The accounting basis to use for the report. Use `cash` to base income and expenses on when money changes hands, `accrual` to base them on invoice and bill dates, or `none` to use the QuickBooks Desktop default for the report. responses: '200': description: Returns the requested general detail report. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_report' x-codeSamples: - lang: JavaScript source: |- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const report = await conductor.qbd.reports.generalDetail({ reportType: '1099_detail', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(report.basis); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) report = conductor.qbd.reports.general_detail( report_type="1099_detail", conductor_end_user_id="end_usr_1234567abcdefg", ) print(report.basis) /quickbooks-desktop/reports/aging: get: summary: Retrieve an aging report description: >- Retrieves an accounts receivable, accounts payable, or collections aging report showing unpaid invoices and bills by aging criteria. This report is useful for analyzing receivables, payables, and collection work across summary or detail aging views. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: query name: reportType schema: type: string enum: - ap_aging_detail - ap_aging_summary - ar_aging_detail - ar_aging_summary - collections_report description: The aging report type to retrieve. example: ap_aging_detail required: true description: The aging report type to retrieve. - in: query name: reportDateFrom schema: description: >- Filter report rows dated on or after this date, in ISO 8601 format (YYYY-MM-DD). Choose either `reportDateMacro` or `reportDateFrom`/`reportDateTo`. If you omit `reportDateFrom`, `reportDateTo`, and `reportDateMacro`, QuickBooks Desktop uses the current fiscal year to date. example: '2025-01-01' type: string format: date description: >- Filter report rows dated on or after this date, in ISO 8601 format (YYYY-MM-DD). Choose either `reportDateMacro` or `reportDateFrom`/`reportDateTo`. If you omit `reportDateFrom`, `reportDateTo`, and `reportDateMacro`, QuickBooks Desktop uses the current fiscal year to date. - in: query name: reportDateTo schema: description: >- Filter report rows dated on or before this date, in ISO 8601 format (YYYY-MM-DD). Choose either `reportDateMacro` or `reportDateFrom`/`reportDateTo`. If you omit `reportDateFrom`, `reportDateTo`, and `reportDateMacro`, QuickBooks Desktop uses the current fiscal year to date. example: '2025-02-01' type: string format: date description: >- Filter report rows dated on or before this date, in ISO 8601 format (YYYY-MM-DD). Choose either `reportDateMacro` or `reportDateFrom`/`reportDateTo`. If you omit `reportDateFrom`, `reportDateTo`, and `reportDateMacro`, QuickBooks Desktop uses the current fiscal year to date. - in: query name: reportDateMacro schema: description: >- A QuickBooks Desktop relative date macro for the report period. Choose either `reportDateMacro` or `reportDateFrom`/`reportDateTo`. example: this_year_to_date type: string enum: - all - today - this_week - this_week_to_date - this_month - this_month_to_date - this_quarter - this_quarter_to_date - this_year - this_year_to_date - yesterday - last_week - last_week_to_date - last_month - last_month_to_date - last_quarter - last_quarter_to_date - last_year - last_year_to_date - next_week - next_four_weeks - next_month - next_quarter - next_year description: >- A QuickBooks Desktop relative date macro for the report period. Choose either `reportDateMacro` or `reportDateFrom`/`reportDateTo`. - in: query name: accountType schema: description: >- Filter report rows by account type. Choose only one account filter per request: `accountType`, `accountIds`, or `accountFullNames`. example: bank type: string enum: - accounts_payable - accounts_receivable - allowed_for_1099 - ap_and_sales_tax - ap_or_credit_card - ar_and_ap - asset - balance_sheet - bank - bank_and_ar_and_ap_and_uf - bank_and_uf - cost_of_sales - credit_card - current_asset - current_asset_and_expense - current_liability - equity - equity_and_income_and_expense - expense_and_other_expense - fixed_asset - income_and_expense - income_and_other_income - liability - liability_and_equity - long_term_liability - non_posting - ordinary_expense - ordinary_income - ordinary_income_and_cogs - ordinary_income_and_expense - other_asset - other_current_asset - other_current_liability - other_expense - other_income - other_income_or_expense description: >- Filter report rows by account type. Choose only one account filter per request: `accountType`, `accountIds`, or `accountFullNames`. - in: query name: accountIds schema: description: >- Filter report rows by QuickBooks-assigned account IDs. Accepts one or more account IDs. Choose only one account filter per request: `accountType`, `accountIds`, or `accountFullNames`. example: - 80000001-1234567890 type: array items: type: string description: >- Filter report rows by QuickBooks-assigned account IDs. Accepts one or more account IDs. Choose only one account filter per request: `accountType`, `accountIds`, or `accountFullNames`. - in: query name: accountFullNames schema: description: >- Filter report rows by account `fullName` values, case-insensitive. A `fullName` is a fully qualified QuickBooks name formed by joining parent object names with the object's `name` using colons. Accepts one or more account full names. Choose only one account filter per request: `accountType`, `accountIds`, or `accountFullNames`. example: - Corporate:Accounts-Payable type: array items: type: string description: >- Filter report rows by account `fullName` values, case-insensitive. A `fullName` is a fully qualified QuickBooks name formed by joining parent object names with the object's `name` using colons. Accepts one or more account full names. Choose only one account filter per request: `accountType`, `accountIds`, or `accountFullNames`. - in: query name: entityType schema: description: >- Filter report rows by entity type, such as customer, vendor, employee, or other name. Choose only one entity filter per request: `entityType`, `entityIds`, or `entityFullNames`. example: customer type: string enum: - customer - employee - other_name - vendor description: >- Filter report rows by entity type, such as customer, vendor, employee, or other name. Choose only one entity filter per request: `entityType`, `entityIds`, or `entityFullNames`. - in: query name: entityIds schema: description: >- Filter report rows by QuickBooks-assigned entity IDs. Accepts one or more entity IDs. Choose only one entity filter per request: `entityType`, `entityIds`, or `entityFullNames`. example: - 80000001-1234567890 type: array items: type: string description: >- Filter report rows by QuickBooks-assigned entity IDs. Accepts one or more entity IDs. Choose only one entity filter per request: `entityType`, `entityIds`, or `entityFullNames`. - in: query name: entityFullNames schema: description: >- Filter report rows by entity `fullName` values, case-insensitive. A `fullName` is a fully qualified QuickBooks name formed by joining parent object names with the object's `name` using colons. Accepts one or more entity full names. Choose only one entity filter per request: `entityType`, `entityIds`, or `entityFullNames`. example: - ABC Corporation:Website Redesign Project type: array items: type: string description: >- Filter report rows by entity `fullName` values, case-insensitive. A `fullName` is a fully qualified QuickBooks name formed by joining parent object names with the object's `name` using colons. Accepts one or more entity full names. Choose only one entity filter per request: `entityType`, `entityIds`, or `entityFullNames`. - in: query name: itemType schema: description: >- Filter report rows by item type. Choose only one item filter per request: `itemType`, `itemIds`, or `itemFullNames`. example: inventory type: string enum: - all_except_fixed_asset - assembly - discount - fixed_asset - inventory - inventory_and_assembly - non_inventory - other_charge - payment - sales - sales_tax - service description: >- Filter report rows by item type. Choose only one item filter per request: `itemType`, `itemIds`, or `itemFullNames`. - in: query name: itemIds schema: description: >- Filter report rows by QuickBooks-assigned item IDs. Accepts one or more item IDs. Choose only one item filter per request: `itemType`, `itemIds`, or `itemFullNames`. example: - 80000001-1234567890 type: array items: type: string description: >- Filter report rows by QuickBooks-assigned item IDs. Accepts one or more item IDs. Choose only one item filter per request: `itemType`, `itemIds`, or `itemFullNames`. - in: query name: itemFullNames schema: description: >- Filter report rows by item `fullName` values, case-insensitive. A `fullName` is a fully qualified QuickBooks name formed by joining parent object names with the object's `name` using colons. Accepts one or more item full names. Choose only one item filter per request: `itemType`, `itemIds`, or `itemFullNames`. example: - Services:Consulting type: array items: type: string description: >- Filter report rows by item `fullName` values, case-insensitive. A `fullName` is a fully qualified QuickBooks name formed by joining parent object names with the object's `name` using colons. Accepts one or more item full names. Choose only one item filter per request: `itemType`, `itemIds`, or `itemFullNames`. - in: query name: classIds schema: description: >- Filter report rows by QuickBooks-assigned class IDs. Accepts one or more class IDs. Choose only one class filter per request: `classIds` or `classFullNames`. example: - 80000001-1234567890 type: array items: type: string description: >- Filter report rows by QuickBooks-assigned class IDs. Accepts one or more class IDs. Choose only one class filter per request: `classIds` or `classFullNames`. - in: query name: classFullNames schema: description: >- Filter report rows by class `fullName` values, case-insensitive. A `fullName` is a fully qualified QuickBooks name formed by joining parent object names with the object's `name` using colons. Accepts one or more class full names. Choose only one class filter per request: `classIds` or `classFullNames`. example: - Department:Marketing type: array items: type: string description: >- Filter report rows by class `fullName` values, case-insensitive. A `fullName` is a fully qualified QuickBooks name formed by joining parent object names with the object's `name` using colons. Accepts one or more class full names. Choose only one class filter per request: `classIds` or `classFullNames`. - in: query name: transactionTypes schema: description: >- Filter report rows by transaction type. Accepts one or more transaction types. example: - invoice - sales_receipt type: array items: type: string enum: - all - 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 description: >- Filter report rows by transaction type. Accepts one or more transaction types. - in: query name: detailLevel schema: description: >- The report detail level to include. Use `all` for all rows, `all_except_summary` to omit summary rows, or `summary_only` to return only summary rows. example: all_except_summary type: string enum: - all - all_except_summary - summary_only default: all description: >- The report detail level to include. Use `all` for all rows, `all_except_summary` to omit summary rows, or `summary_only` to return only summary rows. - in: query name: postingStatus schema: description: >- Filter report rows that are posting, non-posting, or either. Posting status refers to whether QuickBooks records the transaction in an account register. example: posting type: string enum: - either - non_posting - posting description: >- Filter report rows that are posting, non-posting, or either. Posting status refers to whether QuickBooks records the transaction in an account register. - in: query name: updatedAfter schema: description: >- Filter report rows updated on or after this date, in ISO 8601 format (YYYY-MM-DD). Choose either `updatedDateMacro` or `updatedAfter`/`updatedBefore`. example: '2025-01-01' type: string format: date description: >- Filter report rows updated on or after this date, in ISO 8601 format (YYYY-MM-DD). Choose either `updatedDateMacro` or `updatedAfter`/`updatedBefore`. - in: query name: updatedBefore schema: description: >- Filter report rows updated on or before this date, in ISO 8601 format (YYYY-MM-DD). Choose either `updatedDateMacro` or `updatedAfter`/`updatedBefore`. example: '2025-02-01' type: string format: date description: >- Filter report rows updated on or before this date, in ISO 8601 format (YYYY-MM-DD). Choose either `updatedDateMacro` or `updatedAfter`/`updatedBefore`. - in: query name: updatedDateMacro schema: description: >- A QuickBooks Desktop relative updated-date macro. Choose either `updatedDateMacro` or `updatedAfter`/`updatedBefore`. example: this_month_to_date type: string enum: - all - today - this_week - this_week_to_date - this_month - this_month_to_date - this_quarter - this_quarter_to_date - this_year - this_year_to_date - yesterday - last_week - last_week_to_date - last_month - last_month_to_date - last_quarter - last_quarter_to_date - last_year - last_year_to_date - next_week - next_four_weeks - next_month - next_quarter - next_year description: >- A QuickBooks Desktop relative updated-date macro. Choose either `updatedDateMacro` or `updatedAfter`/`updatedBefore`. - in: query name: includeColumns schema: description: >- The report columns to include, by column type. Accepts one or more columns. **IMPORTANT**: When this parameter is present, QuickBooks Desktop omits its default report columns unless you include them here. example: - date - transaction_type - amount type: array items: type: string enum: - account - aging - amount - amount_difference - average_cost - billed_date - billing_status - calculated_amount - class - cleared_status - cost_price - credit - currency - date - debit - delivery_date - due_date - estimate_active - exchange_rate - shipment_origin - income_subject_to_tax - invoiced - item - description - last_modified_by - latest_or_prior_state - memo - updated_at - name - name_account_number - name_address - name_city - name_contact - name_email - name_fax - name_phone - name_state - name_postal_code - open_balance - original_amount - paid_amount - paid_status - paid_through_date - payment_method - payroll_item - purchase_order_number - print_status - progress_amount - progress_percent - quantity - quantity_available - quantity_on_hand - quantity_on_sales_order - received_quantity - ref_number - running_balance - sales_representative - sales_tax_code - serial_or_lot_number - shipping_date - shipping_method - source_name - split_account - ssn_or_tax_identification_number - tax_line - tax_table_version - terms - transaction_id - transaction_number - transaction_type - unit_price - user_edit - value_on_hand - wage_base - wage_base_tips description: >- The report columns to include, by column type. Accepts one or more columns. **IMPORTANT**: When this parameter is present, QuickBooks Desktop omits its default report columns unless you include them here. - in: query name: accountsToInclude schema: description: Whether to include all accounts or only accounts in use. example: all type: string enum: - all - in_use description: Whether to include all accounts or only accounts in use. - in: query name: agingAsOf schema: description: >- The date through which QuickBooks Desktop calculates aging information. example: report_end_date type: string enum: - report_end_date - today default: report_end_date description: >- The date through which QuickBooks Desktop calculates aging information. responses: '200': description: Returns the requested aging report. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_report' x-codeSamples: - lang: JavaScript source: |- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const report = await conductor.qbd.reports.aging({ reportType: 'ap_aging_detail', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(report.basis); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) report = conductor.qbd.reports.aging( report_type="ap_aging_detail", conductor_end_user_id="end_usr_1234567abcdefg", ) print(report.basis) /quickbooks-desktop/reports/budget-summary: get: summary: Retrieve a budget summary report description: >- Retrieves a QuickBooks Desktop budget summary report for Balance Sheet or Profit and Loss budgets, including budget overview, budget versus actual, and performance views. This report compares budgeted amounts against actual activity for a fiscal year and budget criterion; the target budget must already exist in QuickBooks Desktop. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: query name: reportType schema: type: string enum: - balance_sheet_budget_overview - balance_sheet_budget_vs_actual - profit_and_loss_budget_overview - profit_and_loss_budget_performance - profit_and_loss_budget_vs_actual description: The budget summary report type to retrieve. example: balance_sheet_budget_overview required: true description: The budget summary report type to retrieve. - in: query name: reportDateFrom schema: description: >- Filter report rows dated on or after this date, in ISO 8601 format (YYYY-MM-DD). Choose either `reportDateMacro` or `reportDateFrom`/`reportDateTo`. If you omit `reportDateFrom`, `reportDateTo`, and `reportDateMacro`, QuickBooks Desktop uses the current fiscal year to date. example: '2025-01-01' type: string format: date description: >- Filter report rows dated on or after this date, in ISO 8601 format (YYYY-MM-DD). Choose either `reportDateMacro` or `reportDateFrom`/`reportDateTo`. If you omit `reportDateFrom`, `reportDateTo`, and `reportDateMacro`, QuickBooks Desktop uses the current fiscal year to date. - in: query name: reportDateTo schema: description: >- Filter report rows dated on or before this date, in ISO 8601 format (YYYY-MM-DD). Choose either `reportDateMacro` or `reportDateFrom`/`reportDateTo`. If you omit `reportDateFrom`, `reportDateTo`, and `reportDateMacro`, QuickBooks Desktop uses the current fiscal year to date. example: '2025-02-01' type: string format: date description: >- Filter report rows dated on or before this date, in ISO 8601 format (YYYY-MM-DD). Choose either `reportDateMacro` or `reportDateFrom`/`reportDateTo`. If you omit `reportDateFrom`, `reportDateTo`, and `reportDateMacro`, QuickBooks Desktop uses the current fiscal year to date. - in: query name: reportDateMacro schema: description: >- A QuickBooks Desktop relative date macro for the report period. Choose either `reportDateMacro` or `reportDateFrom`/`reportDateTo`. example: this_year_to_date type: string enum: - all - today - this_week - this_week_to_date - this_month - this_month_to_date - this_quarter - this_quarter_to_date - this_year - this_year_to_date - yesterday - last_week - last_week_to_date - last_month - last_month_to_date - last_quarter - last_quarter_to_date - last_year - last_year_to_date - next_week - next_four_weeks - next_month - next_quarter - next_year description: >- A QuickBooks Desktop relative date macro for the report period. Choose either `reportDateMacro` or `reportDateFrom`/`reportDateTo`. - in: query name: fiscalYear schema: type: number description: >- The fiscal year of the QuickBooks budget. QuickBooks Desktop returns the full fiscal year for prior years and year-to-date data for the current fiscal year. example: 2026 required: true description: >- The fiscal year of the QuickBooks budget. QuickBooks Desktop returns the full fiscal year for prior years and year-to-date data for the current fiscal year. - in: query name: budgetCriterion schema: description: >- What the budget covers, such as accounts, accounts and classes, or accounts and customers. example: accounts type: string enum: - accounts - accounts_and_classes - accounts_and_customers description: >- What the budget covers, such as accounts, accounts and classes, or accounts and customers. - in: query name: classIds schema: description: >- Filter report rows by QuickBooks-assigned class IDs. Accepts one or more class IDs. Choose only one class filter per request: `classIds` or `classFullNames`. example: - 80000001-1234567890 type: array items: type: string description: >- Filter report rows by QuickBooks-assigned class IDs. Accepts one or more class IDs. Choose only one class filter per request: `classIds` or `classFullNames`. - in: query name: classFullNames schema: description: >- Filter report rows by class `fullName` values, case-insensitive. A `fullName` is a fully qualified QuickBooks name formed by joining parent object names with the object's `name` using colons. Accepts one or more class full names. Choose only one class filter per request: `classIds` or `classFullNames`. example: - Department:Marketing type: array items: type: string description: >- Filter report rows by class `fullName` values, case-insensitive. A `fullName` is a fully qualified QuickBooks name formed by joining parent object names with the object's `name` using colons. Accepts one or more class full names. Choose only one class filter per request: `classIds` or `classFullNames`. - in: query name: summarizeColumnsBy schema: description: >- How QuickBooks Desktop calculates budget report columns and labels column headers. example: date type: string enum: - class - customer - date description: >- How QuickBooks Desktop calculates budget report columns and labels column headers. - in: query name: summarizeRowsBy schema: description: How QuickBooks Desktop labels budget report rows. example: account type: string enum: - account - class - customer description: How QuickBooks Desktop labels budget report rows. responses: '200': description: Returns the requested budget summary report. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_report' x-codeSamples: - lang: JavaScript source: |- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const report = await conductor.qbd.reports.budgetSummary({ fiscalYear: 2026, reportType: 'balance_sheet_budget_overview', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(report.basis); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) report = conductor.qbd.reports.budget_summary( fiscal_year=2026, report_type="balance_sheet_budget_overview", conductor_end_user_id="end_usr_1234567abcdefg", ) print(report.basis) /quickbooks-desktop/reports/job: get: summary: Retrieve a job report description: >- Retrieves a QuickBooks Desktop job report for estimates versus actuals, item profitability, or job profitability. This report is useful for project costing, margin analysis, and estimate tracking by customer or job; job profitability detail and estimates-versus-actuals detail report types require a customer or job filter. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: query name: reportType schema: type: string enum: - item_estimates_vs_actuals - item_profitability - job_estimates_vs_actuals_detail - job_estimates_vs_actuals_summary - job_profitability_detail - job_profitability_summary description: The job report type to retrieve. example: item_estimates_vs_actuals required: true description: The job report type to retrieve. - in: query name: reportDateFrom schema: description: >- Filter report rows dated on or after this date, in ISO 8601 format (YYYY-MM-DD). Choose either `reportDateMacro` or `reportDateFrom`/`reportDateTo`. If you omit `reportDateFrom`, `reportDateTo`, and `reportDateMacro`, QuickBooks Desktop uses the current fiscal year to date. example: '2025-01-01' type: string format: date description: >- Filter report rows dated on or after this date, in ISO 8601 format (YYYY-MM-DD). Choose either `reportDateMacro` or `reportDateFrom`/`reportDateTo`. If you omit `reportDateFrom`, `reportDateTo`, and `reportDateMacro`, QuickBooks Desktop uses the current fiscal year to date. - in: query name: reportDateTo schema: description: >- Filter report rows dated on or before this date, in ISO 8601 format (YYYY-MM-DD). Choose either `reportDateMacro` or `reportDateFrom`/`reportDateTo`. If you omit `reportDateFrom`, `reportDateTo`, and `reportDateMacro`, QuickBooks Desktop uses the current fiscal year to date. example: '2025-02-01' type: string format: date description: >- Filter report rows dated on or before this date, in ISO 8601 format (YYYY-MM-DD). Choose either `reportDateMacro` or `reportDateFrom`/`reportDateTo`. If you omit `reportDateFrom`, `reportDateTo`, and `reportDateMacro`, QuickBooks Desktop uses the current fiscal year to date. - in: query name: reportDateMacro schema: description: >- A QuickBooks Desktop relative date macro for the report period. Choose either `reportDateMacro` or `reportDateFrom`/`reportDateTo`. example: this_year_to_date type: string enum: - all - today - this_week - this_week_to_date - this_month - this_month_to_date - this_quarter - this_quarter_to_date - this_year - this_year_to_date - yesterday - last_week - last_week_to_date - last_month - last_month_to_date - last_quarter - last_quarter_to_date - last_year - last_year_to_date - next_week - next_four_weeks - next_month - next_quarter - next_year description: >- A QuickBooks Desktop relative date macro for the report period. Choose either `reportDateMacro` or `reportDateFrom`/`reportDateTo`. - in: query name: accountType schema: description: >- Filter report rows by account type. Choose only one account filter per request: `accountType`, `accountIds`, or `accountFullNames`. example: bank type: string enum: - accounts_payable - accounts_receivable - allowed_for_1099 - ap_and_sales_tax - ap_or_credit_card - ar_and_ap - asset - balance_sheet - bank - bank_and_ar_and_ap_and_uf - bank_and_uf - cost_of_sales - credit_card - current_asset - current_asset_and_expense - current_liability - equity - equity_and_income_and_expense - expense_and_other_expense - fixed_asset - income_and_expense - income_and_other_income - liability - liability_and_equity - long_term_liability - non_posting - ordinary_expense - ordinary_income - ordinary_income_and_cogs - ordinary_income_and_expense - other_asset - other_current_asset - other_current_liability - other_expense - other_income - other_income_or_expense description: >- Filter report rows by account type. Choose only one account filter per request: `accountType`, `accountIds`, or `accountFullNames`. - in: query name: accountIds schema: description: >- Filter report rows by QuickBooks-assigned account IDs. Accepts one or more account IDs. Choose only one account filter per request: `accountType`, `accountIds`, or `accountFullNames`. example: - 80000001-1234567890 type: array items: type: string description: >- Filter report rows by QuickBooks-assigned account IDs. Accepts one or more account IDs. Choose only one account filter per request: `accountType`, `accountIds`, or `accountFullNames`. - in: query name: accountFullNames schema: description: >- Filter report rows by account `fullName` values, case-insensitive. A `fullName` is a fully qualified QuickBooks name formed by joining parent object names with the object's `name` using colons. Accepts one or more account full names. Choose only one account filter per request: `accountType`, `accountIds`, or `accountFullNames`. example: - Corporate:Accounts-Payable type: array items: type: string description: >- Filter report rows by account `fullName` values, case-insensitive. A `fullName` is a fully qualified QuickBooks name formed by joining parent object names with the object's `name` using colons. Accepts one or more account full names. Choose only one account filter per request: `accountType`, `accountIds`, or `accountFullNames`. - in: query name: entityType schema: description: >- Filter report rows by entity type, such as customer, vendor, employee, or other name. Choose only one entity filter per request: `entityType`, `entityIds`, or `entityFullNames`. example: customer type: string enum: - customer - employee - other_name - vendor description: >- Filter report rows by entity type, such as customer, vendor, employee, or other name. Choose only one entity filter per request: `entityType`, `entityIds`, or `entityFullNames`. - in: query name: entityIds schema: description: >- Filter report rows by QuickBooks-assigned entity IDs. Accepts one or more entity IDs. Choose only one entity filter per request: `entityType`, `entityIds`, or `entityFullNames`. example: - 80000001-1234567890 type: array items: type: string description: >- Filter report rows by QuickBooks-assigned entity IDs. Accepts one or more entity IDs. Choose only one entity filter per request: `entityType`, `entityIds`, or `entityFullNames`. - in: query name: entityFullNames schema: description: >- Filter report rows by entity `fullName` values, case-insensitive. A `fullName` is a fully qualified QuickBooks name formed by joining parent object names with the object's `name` using colons. Accepts one or more entity full names. Choose only one entity filter per request: `entityType`, `entityIds`, or `entityFullNames`. example: - ABC Corporation:Website Redesign Project type: array items: type: string description: >- Filter report rows by entity `fullName` values, case-insensitive. A `fullName` is a fully qualified QuickBooks name formed by joining parent object names with the object's `name` using colons. Accepts one or more entity full names. Choose only one entity filter per request: `entityType`, `entityIds`, or `entityFullNames`. - in: query name: itemType schema: description: >- Filter report rows by item type. Choose only one item filter per request: `itemType`, `itemIds`, or `itemFullNames`. example: inventory type: string enum: - all_except_fixed_asset - assembly - discount - fixed_asset - inventory - inventory_and_assembly - non_inventory - other_charge - payment - sales - sales_tax - service description: >- Filter report rows by item type. Choose only one item filter per request: `itemType`, `itemIds`, or `itemFullNames`. - in: query name: itemIds schema: description: >- Filter report rows by QuickBooks-assigned item IDs. Accepts one or more item IDs. Choose only one item filter per request: `itemType`, `itemIds`, or `itemFullNames`. example: - 80000001-1234567890 type: array items: type: string description: >- Filter report rows by QuickBooks-assigned item IDs. Accepts one or more item IDs. Choose only one item filter per request: `itemType`, `itemIds`, or `itemFullNames`. - in: query name: itemFullNames schema: description: >- Filter report rows by item `fullName` values, case-insensitive. A `fullName` is a fully qualified QuickBooks name formed by joining parent object names with the object's `name` using colons. Accepts one or more item full names. Choose only one item filter per request: `itemType`, `itemIds`, or `itemFullNames`. example: - Services:Consulting type: array items: type: string description: >- Filter report rows by item `fullName` values, case-insensitive. A `fullName` is a fully qualified QuickBooks name formed by joining parent object names with the object's `name` using colons. Accepts one or more item full names. Choose only one item filter per request: `itemType`, `itemIds`, or `itemFullNames`. - in: query name: classIds schema: description: >- Filter report rows by QuickBooks-assigned class IDs. Accepts one or more class IDs. Choose only one class filter per request: `classIds` or `classFullNames`. example: - 80000001-1234567890 type: array items: type: string description: >- Filter report rows by QuickBooks-assigned class IDs. Accepts one or more class IDs. Choose only one class filter per request: `classIds` or `classFullNames`. - in: query name: classFullNames schema: description: >- Filter report rows by class `fullName` values, case-insensitive. A `fullName` is a fully qualified QuickBooks name formed by joining parent object names with the object's `name` using colons. Accepts one or more class full names. Choose only one class filter per request: `classIds` or `classFullNames`. example: - Department:Marketing type: array items: type: string description: >- Filter report rows by class `fullName` values, case-insensitive. A `fullName` is a fully qualified QuickBooks name formed by joining parent object names with the object's `name` using colons. Accepts one or more class full names. Choose only one class filter per request: `classIds` or `classFullNames`. - in: query name: transactionTypes schema: description: >- Filter report rows by transaction type. Accepts one or more transaction types. example: - invoice - sales_receipt type: array items: type: string enum: - all - 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 description: >- Filter report rows by transaction type. Accepts one or more transaction types. - in: query name: detailLevel schema: description: >- The report detail level to include. Use `all` for all rows, `all_except_summary` to omit summary rows, or `summary_only` to return only summary rows. example: all_except_summary type: string enum: - all - all_except_summary - summary_only default: all description: >- The report detail level to include. Use `all` for all rows, `all_except_summary` to omit summary rows, or `summary_only` to return only summary rows. - in: query name: postingStatus schema: description: >- Filter report rows that are posting, non-posting, or either. Posting status refers to whether QuickBooks records the transaction in an account register. example: posting type: string enum: - either - non_posting - posting description: >- Filter report rows that are posting, non-posting, or either. Posting status refers to whether QuickBooks records the transaction in an account register. - in: query name: updatedAfter schema: description: >- Filter report rows updated on or after this date, in ISO 8601 format (YYYY-MM-DD). Choose either `updatedDateMacro` or `updatedAfter`/`updatedBefore`. example: '2025-01-01' type: string format: date description: >- Filter report rows updated on or after this date, in ISO 8601 format (YYYY-MM-DD). Choose either `updatedDateMacro` or `updatedAfter`/`updatedBefore`. - in: query name: updatedBefore schema: description: >- Filter report rows updated on or before this date, in ISO 8601 format (YYYY-MM-DD). Choose either `updatedDateMacro` or `updatedAfter`/`updatedBefore`. example: '2025-02-01' type: string format: date description: >- Filter report rows updated on or before this date, in ISO 8601 format (YYYY-MM-DD). Choose either `updatedDateMacro` or `updatedAfter`/`updatedBefore`. - in: query name: updatedDateMacro schema: description: >- A QuickBooks Desktop relative updated-date macro. Choose either `updatedDateMacro` or `updatedAfter`/`updatedBefore`. example: this_month_to_date type: string enum: - all - today - this_week - this_week_to_date - this_month - this_month_to_date - this_quarter - this_quarter_to_date - this_year - this_year_to_date - yesterday - last_week - last_week_to_date - last_month - last_month_to_date - last_quarter - last_quarter_to_date - last_year - last_year_to_date - next_week - next_four_weeks - next_month - next_quarter - next_year description: >- A QuickBooks Desktop relative updated-date macro. Choose either `updatedDateMacro` or `updatedAfter`/`updatedBefore`. - in: query name: summarizeColumnsBy schema: description: >- How QuickBooks Desktop calculates report data and labels report column headers. example: month type: string enum: - account - balance_sheet - class - customer - customer_type - day - employee - four_week - half_month - income_statement - item_detail - item_type - month - payee - payment_method - payroll_item_detail - payroll_ytd_detail - quarter - sales_representative - sales_tax_code - shipping_method - terms - total_only - two_week - vendor - vendor_type - week - year description: >- How QuickBooks Desktop calculates report data and labels report column headers. - in: query name: includeSubcolumns schema: description: >- Whether to include subcolumns in the report. **NOTE**: QuickBooks Desktop may still omit subcolumns that it can easily compute from other returned values. example: true type: boolean description: >- Whether to include subcolumns in the report. **NOTE**: QuickBooks Desktop may still omit subcolumns that it can easily compute from other returned values. responses: '200': description: Returns the requested job report. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_report' x-codeSamples: - lang: JavaScript source: |- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const report = await conductor.qbd.reports.job({ reportType: 'item_estimates_vs_actuals', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(report.basis); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) report = conductor.qbd.reports.job( report_type="item_estimates_vs_actuals", conductor_end_user_id="end_usr_1234567abcdefg", ) print(report.basis) /quickbooks-desktop/reports/time: get: summary: Retrieve a time report description: >- Retrieves a QuickBooks Desktop time report by item, job, or name, with summary or detail rows depending on the selected report type. This report is useful for analyzing tracked time for billing, costing, staffing, or project review. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: query name: reportType schema: type: string enum: - time_by_item - time_by_job_detail - time_by_job_summary - time_by_name description: The time report type to retrieve. example: time_by_item required: true description: The time report type to retrieve. - in: query name: reportDateFrom schema: description: >- Filter report rows dated on or after this date, in ISO 8601 format (YYYY-MM-DD). Choose either `reportDateMacro` or `reportDateFrom`/`reportDateTo`. If you omit `reportDateFrom`, `reportDateTo`, and `reportDateMacro`, QuickBooks Desktop uses the current fiscal year to date. example: '2025-01-01' type: string format: date description: >- Filter report rows dated on or after this date, in ISO 8601 format (YYYY-MM-DD). Choose either `reportDateMacro` or `reportDateFrom`/`reportDateTo`. If you omit `reportDateFrom`, `reportDateTo`, and `reportDateMacro`, QuickBooks Desktop uses the current fiscal year to date. - in: query name: reportDateTo schema: description: >- Filter report rows dated on or before this date, in ISO 8601 format (YYYY-MM-DD). Choose either `reportDateMacro` or `reportDateFrom`/`reportDateTo`. If you omit `reportDateFrom`, `reportDateTo`, and `reportDateMacro`, QuickBooks Desktop uses the current fiscal year to date. example: '2025-02-01' type: string format: date description: >- Filter report rows dated on or before this date, in ISO 8601 format (YYYY-MM-DD). Choose either `reportDateMacro` or `reportDateFrom`/`reportDateTo`. If you omit `reportDateFrom`, `reportDateTo`, and `reportDateMacro`, QuickBooks Desktop uses the current fiscal year to date. - in: query name: reportDateMacro schema: description: >- A QuickBooks Desktop relative date macro for the report period. Choose either `reportDateMacro` or `reportDateFrom`/`reportDateTo`. example: this_year_to_date type: string enum: - all - today - this_week - this_week_to_date - this_month - this_month_to_date - this_quarter - this_quarter_to_date - this_year - this_year_to_date - yesterday - last_week - last_week_to_date - last_month - last_month_to_date - last_quarter - last_quarter_to_date - last_year - last_year_to_date - next_week - next_four_weeks - next_month - next_quarter - next_year description: >- A QuickBooks Desktop relative date macro for the report period. Choose either `reportDateMacro` or `reportDateFrom`/`reportDateTo`. - in: query name: entityType schema: description: >- Filter report rows by entity type, such as customer, vendor, employee, or other name. Choose only one entity filter per request: `entityType`, `entityIds`, or `entityFullNames`. example: customer type: string enum: - customer - employee - other_name - vendor description: >- Filter report rows by entity type, such as customer, vendor, employee, or other name. Choose only one entity filter per request: `entityType`, `entityIds`, or `entityFullNames`. - in: query name: entityIds schema: description: >- Filter report rows by QuickBooks-assigned entity IDs. Accepts one or more entity IDs. Choose only one entity filter per request: `entityType`, `entityIds`, or `entityFullNames`. example: - 80000001-1234567890 type: array items: type: string description: >- Filter report rows by QuickBooks-assigned entity IDs. Accepts one or more entity IDs. Choose only one entity filter per request: `entityType`, `entityIds`, or `entityFullNames`. - in: query name: entityFullNames schema: description: >- Filter report rows by entity `fullName` values, case-insensitive. A `fullName` is a fully qualified QuickBooks name formed by joining parent object names with the object's `name` using colons. Accepts one or more entity full names. Choose only one entity filter per request: `entityType`, `entityIds`, or `entityFullNames`. example: - ABC Corporation:Website Redesign Project type: array items: type: string description: >- Filter report rows by entity `fullName` values, case-insensitive. A `fullName` is a fully qualified QuickBooks name formed by joining parent object names with the object's `name` using colons. Accepts one or more entity full names. Choose only one entity filter per request: `entityType`, `entityIds`, or `entityFullNames`. - in: query name: itemType schema: description: >- Filter report rows by item type. Choose only one item filter per request: `itemType`, `itemIds`, or `itemFullNames`. example: inventory type: string enum: - all_except_fixed_asset - assembly - discount - fixed_asset - inventory - inventory_and_assembly - non_inventory - other_charge - payment - sales - sales_tax - service description: >- Filter report rows by item type. Choose only one item filter per request: `itemType`, `itemIds`, or `itemFullNames`. - in: query name: itemIds schema: description: >- Filter report rows by QuickBooks-assigned item IDs. Accepts one or more item IDs. Choose only one item filter per request: `itemType`, `itemIds`, or `itemFullNames`. example: - 80000001-1234567890 type: array items: type: string description: >- Filter report rows by QuickBooks-assigned item IDs. Accepts one or more item IDs. Choose only one item filter per request: `itemType`, `itemIds`, or `itemFullNames`. - in: query name: itemFullNames schema: description: >- Filter report rows by item `fullName` values, case-insensitive. A `fullName` is a fully qualified QuickBooks name formed by joining parent object names with the object's `name` using colons. Accepts one or more item full names. Choose only one item filter per request: `itemType`, `itemIds`, or `itemFullNames`. example: - Services:Consulting type: array items: type: string description: >- Filter report rows by item `fullName` values, case-insensitive. A `fullName` is a fully qualified QuickBooks name formed by joining parent object names with the object's `name` using colons. Accepts one or more item full names. Choose only one item filter per request: `itemType`, `itemIds`, or `itemFullNames`. - in: query name: classIds schema: description: >- Filter report rows by QuickBooks-assigned class IDs. Accepts one or more class IDs. Choose only one class filter per request: `classIds` or `classFullNames`. example: - 80000001-1234567890 type: array items: type: string description: >- Filter report rows by QuickBooks-assigned class IDs. Accepts one or more class IDs. Choose only one class filter per request: `classIds` or `classFullNames`. - in: query name: classFullNames schema: description: >- Filter report rows by class `fullName` values, case-insensitive. A `fullName` is a fully qualified QuickBooks name formed by joining parent object names with the object's `name` using colons. Accepts one or more class full names. Choose only one class filter per request: `classIds` or `classFullNames`. example: - Department:Marketing type: array items: type: string description: >- Filter report rows by class `fullName` values, case-insensitive. A `fullName` is a fully qualified QuickBooks name formed by joining parent object names with the object's `name` using colons. Accepts one or more class full names. Choose only one class filter per request: `classIds` or `classFullNames`. - in: query name: summarizeColumnsBy schema: description: >- How QuickBooks Desktop calculates report data and labels report column headers. example: month type: string enum: - account - balance_sheet - class - customer - customer_type - day - employee - four_week - half_month - income_statement - item_detail - item_type - month - payee - payment_method - payroll_item_detail - payroll_ytd_detail - quarter - sales_representative - sales_tax_code - shipping_method - terms - total_only - two_week - vendor - vendor_type - week - year description: >- How QuickBooks Desktop calculates report data and labels report column headers. - in: query name: includeSubcolumns schema: description: >- Whether to include subcolumns in the report. **NOTE**: QuickBooks Desktop may still omit subcolumns that it can easily compute from other returned values. example: true type: boolean description: >- Whether to include subcolumns in the report. **NOTE**: QuickBooks Desktop may still omit subcolumns that it can easily compute from other returned values. - in: query name: reportCalendar schema: description: The type of year to use for the report. example: calendar_year type: string enum: - calendar_year - fiscal_year - tax_year description: The type of year to use for the report. - in: query name: rowsToReturn schema: description: >- Filters which report rows QuickBooks returns. Use `active_only` for active rows, `non_zero` for rows with non-zero values, or `all` for all rows. example: all type: string enum: - active_only - non_zero - all description: >- Filters which report rows QuickBooks returns. Use `active_only` for active rows, `non_zero` for rows with non-zero values, or `all` for all rows. - in: query name: columnsToReturn schema: description: >- Filters which report columns QuickBooks returns. Use `active_only` for active columns, `non_zero` for columns with non-zero values, or `all` for all columns. example: all type: string enum: - active_only - non_zero - all description: >- Filters which report columns QuickBooks returns. Use `active_only` for active columns, `non_zero` for columns with non-zero values, or `all` for all columns. responses: '200': description: Returns the requested time report. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_report' x-codeSamples: - lang: JavaScript source: |- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const report = await conductor.qbd.reports.time({ reportType: 'time_by_item', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(report.basis); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) report = conductor.qbd.reports.time( report_type="time_by_item", conductor_end_user_id="end_usr_1234567abcdefg", ) print(report.basis) /quickbooks-desktop/reports/custom-detail: get: summary: Retrieve a custom detail report description: >- Retrieves a custom transaction detail report built from the row grouping, included columns, date period, and filters you request. This report is useful when no preset detail report exposes the transaction rows or report-only columns you need; QuickBooks Desktop does not choose default columns for this report. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: query name: reportType schema: description: >- The custom detail report type to retrieve. This endpoint supports only `custom_transaction_detail`, so this parameter is optional and defaults to `custom_transaction_detail`. example: custom_transaction_detail default: custom_transaction_detail type: string enum: - custom_transaction_detail description: >- The custom detail report type to retrieve. This endpoint supports only `custom_transaction_detail`, so this parameter is optional and defaults to `custom_transaction_detail`. - in: query name: reportDateFrom schema: description: >- Filter report rows dated on or after this date, in ISO 8601 format (YYYY-MM-DD). Choose either `reportDateMacro` or `reportDateFrom`/`reportDateTo`. If you omit `reportDateFrom`, `reportDateTo`, and `reportDateMacro`, QuickBooks Desktop uses the current fiscal year to date. example: '2025-01-01' type: string format: date description: >- Filter report rows dated on or after this date, in ISO 8601 format (YYYY-MM-DD). Choose either `reportDateMacro` or `reportDateFrom`/`reportDateTo`. If you omit `reportDateFrom`, `reportDateTo`, and `reportDateMacro`, QuickBooks Desktop uses the current fiscal year to date. - in: query name: reportDateTo schema: description: >- Filter report rows dated on or before this date, in ISO 8601 format (YYYY-MM-DD). Choose either `reportDateMacro` or `reportDateFrom`/`reportDateTo`. If you omit `reportDateFrom`, `reportDateTo`, and `reportDateMacro`, QuickBooks Desktop uses the current fiscal year to date. example: '2025-02-01' type: string format: date description: >- Filter report rows dated on or before this date, in ISO 8601 format (YYYY-MM-DD). Choose either `reportDateMacro` or `reportDateFrom`/`reportDateTo`. If you omit `reportDateFrom`, `reportDateTo`, and `reportDateMacro`, QuickBooks Desktop uses the current fiscal year to date. - in: query name: reportDateMacro schema: description: >- A QuickBooks Desktop relative date macro for the report period. Choose either `reportDateMacro` or `reportDateFrom`/`reportDateTo`. example: this_year_to_date type: string enum: - all - today - this_week - this_week_to_date - this_month - this_month_to_date - this_quarter - this_quarter_to_date - this_year - this_year_to_date - yesterday - last_week - last_week_to_date - last_month - last_month_to_date - last_quarter - last_quarter_to_date - last_year - last_year_to_date - next_week - next_four_weeks - next_month - next_quarter - next_year description: >- A QuickBooks Desktop relative date macro for the report period. Choose either `reportDateMacro` or `reportDateFrom`/`reportDateTo`. - in: query name: accountType schema: description: >- Filter report rows by account type. Choose only one account filter per request: `accountType`, `accountIds`, or `accountFullNames`. example: bank type: string enum: - accounts_payable - accounts_receivable - allowed_for_1099 - ap_and_sales_tax - ap_or_credit_card - ar_and_ap - asset - balance_sheet - bank - bank_and_ar_and_ap_and_uf - bank_and_uf - cost_of_sales - credit_card - current_asset - current_asset_and_expense - current_liability - equity - equity_and_income_and_expense - expense_and_other_expense - fixed_asset - income_and_expense - income_and_other_income - liability - liability_and_equity - long_term_liability - non_posting - ordinary_expense - ordinary_income - ordinary_income_and_cogs - ordinary_income_and_expense - other_asset - other_current_asset - other_current_liability - other_expense - other_income - other_income_or_expense description: >- Filter report rows by account type. Choose only one account filter per request: `accountType`, `accountIds`, or `accountFullNames`. - in: query name: accountIds schema: description: >- Filter report rows by QuickBooks-assigned account IDs. Accepts one or more account IDs. Choose only one account filter per request: `accountType`, `accountIds`, or `accountFullNames`. example: - 80000001-1234567890 type: array items: type: string description: >- Filter report rows by QuickBooks-assigned account IDs. Accepts one or more account IDs. Choose only one account filter per request: `accountType`, `accountIds`, or `accountFullNames`. - in: query name: accountFullNames schema: description: >- Filter report rows by account `fullName` values, case-insensitive. A `fullName` is a fully qualified QuickBooks name formed by joining parent object names with the object's `name` using colons. Accepts one or more account full names. Choose only one account filter per request: `accountType`, `accountIds`, or `accountFullNames`. example: - Corporate:Accounts-Payable type: array items: type: string description: >- Filter report rows by account `fullName` values, case-insensitive. A `fullName` is a fully qualified QuickBooks name formed by joining parent object names with the object's `name` using colons. Accepts one or more account full names. Choose only one account filter per request: `accountType`, `accountIds`, or `accountFullNames`. - in: query name: entityType schema: description: >- Filter report rows by entity type, such as customer, vendor, employee, or other name. Choose only one entity filter per request: `entityType`, `entityIds`, or `entityFullNames`. example: customer type: string enum: - customer - employee - other_name - vendor description: >- Filter report rows by entity type, such as customer, vendor, employee, or other name. Choose only one entity filter per request: `entityType`, `entityIds`, or `entityFullNames`. - in: query name: entityIds schema: description: >- Filter report rows by QuickBooks-assigned entity IDs. Accepts one or more entity IDs. Choose only one entity filter per request: `entityType`, `entityIds`, or `entityFullNames`. example: - 80000001-1234567890 type: array items: type: string description: >- Filter report rows by QuickBooks-assigned entity IDs. Accepts one or more entity IDs. Choose only one entity filter per request: `entityType`, `entityIds`, or `entityFullNames`. - in: query name: entityFullNames schema: description: >- Filter report rows by entity `fullName` values, case-insensitive. A `fullName` is a fully qualified QuickBooks name formed by joining parent object names with the object's `name` using colons. Accepts one or more entity full names. Choose only one entity filter per request: `entityType`, `entityIds`, or `entityFullNames`. example: - ABC Corporation:Website Redesign Project type: array items: type: string description: >- Filter report rows by entity `fullName` values, case-insensitive. A `fullName` is a fully qualified QuickBooks name formed by joining parent object names with the object's `name` using colons. Accepts one or more entity full names. Choose only one entity filter per request: `entityType`, `entityIds`, or `entityFullNames`. - in: query name: itemType schema: description: >- Filter report rows by item type. Choose only one item filter per request: `itemType`, `itemIds`, or `itemFullNames`. example: inventory type: string enum: - all_except_fixed_asset - assembly - discount - fixed_asset - inventory - inventory_and_assembly - non_inventory - other_charge - payment - sales - sales_tax - service description: >- Filter report rows by item type. Choose only one item filter per request: `itemType`, `itemIds`, or `itemFullNames`. - in: query name: itemIds schema: description: >- Filter report rows by QuickBooks-assigned item IDs. Accepts one or more item IDs. Choose only one item filter per request: `itemType`, `itemIds`, or `itemFullNames`. example: - 80000001-1234567890 type: array items: type: string description: >- Filter report rows by QuickBooks-assigned item IDs. Accepts one or more item IDs. Choose only one item filter per request: `itemType`, `itemIds`, or `itemFullNames`. - in: query name: itemFullNames schema: description: >- Filter report rows by item `fullName` values, case-insensitive. A `fullName` is a fully qualified QuickBooks name formed by joining parent object names with the object's `name` using colons. Accepts one or more item full names. Choose only one item filter per request: `itemType`, `itemIds`, or `itemFullNames`. example: - Services:Consulting type: array items: type: string description: >- Filter report rows by item `fullName` values, case-insensitive. A `fullName` is a fully qualified QuickBooks name formed by joining parent object names with the object's `name` using colons. Accepts one or more item full names. Choose only one item filter per request: `itemType`, `itemIds`, or `itemFullNames`. - in: query name: classIds schema: description: >- Filter report rows by QuickBooks-assigned class IDs. Accepts one or more class IDs. Choose only one class filter per request: `classIds` or `classFullNames`. example: - 80000001-1234567890 type: array items: type: string description: >- Filter report rows by QuickBooks-assigned class IDs. Accepts one or more class IDs. Choose only one class filter per request: `classIds` or `classFullNames`. - in: query name: classFullNames schema: description: >- Filter report rows by class `fullName` values, case-insensitive. A `fullName` is a fully qualified QuickBooks name formed by joining parent object names with the object's `name` using colons. Accepts one or more class full names. Choose only one class filter per request: `classIds` or `classFullNames`. example: - Department:Marketing type: array items: type: string description: >- Filter report rows by class `fullName` values, case-insensitive. A `fullName` is a fully qualified QuickBooks name formed by joining parent object names with the object's `name` using colons. Accepts one or more class full names. Choose only one class filter per request: `classIds` or `classFullNames`. - in: query name: transactionTypes schema: description: >- Filter report rows by transaction type. Accepts one or more transaction types. example: - invoice - sales_receipt type: array items: type: string enum: - all - 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 description: >- Filter report rows by transaction type. Accepts one or more transaction types. - in: query name: detailLevel schema: description: >- The report detail level to include. Use `all` for all rows, `all_except_summary` to omit summary rows, or `summary_only` to return only summary rows. example: all_except_summary type: string enum: - all - all_except_summary - summary_only default: all description: >- The report detail level to include. Use `all` for all rows, `all_except_summary` to omit summary rows, or `summary_only` to return only summary rows. - in: query name: postingStatus schema: description: >- Filter report rows that are posting, non-posting, or either. Posting status refers to whether QuickBooks records the transaction in an account register. example: posting type: string enum: - either - non_posting - posting description: >- Filter report rows that are posting, non-posting, or either. Posting status refers to whether QuickBooks records the transaction in an account register. - in: query name: updatedAfter schema: description: >- Filter report rows updated on or after this date, in ISO 8601 format (YYYY-MM-DD). Choose either `updatedDateMacro` or `updatedAfter`/`updatedBefore`. example: '2025-01-01' type: string format: date description: >- Filter report rows updated on or after this date, in ISO 8601 format (YYYY-MM-DD). Choose either `updatedDateMacro` or `updatedAfter`/`updatedBefore`. - in: query name: updatedBefore schema: description: >- Filter report rows updated on or before this date, in ISO 8601 format (YYYY-MM-DD). Choose either `updatedDateMacro` or `updatedAfter`/`updatedBefore`. example: '2025-02-01' type: string format: date description: >- Filter report rows updated on or before this date, in ISO 8601 format (YYYY-MM-DD). Choose either `updatedDateMacro` or `updatedAfter`/`updatedBefore`. - in: query name: updatedDateMacro schema: description: >- A QuickBooks Desktop relative updated-date macro. Choose either `updatedDateMacro` or `updatedAfter`/`updatedBefore`. example: this_month_to_date type: string enum: - all - today - this_week - this_week_to_date - this_month - this_month_to_date - this_quarter - this_quarter_to_date - this_year - this_year_to_date - yesterday - last_week - last_week_to_date - last_month - last_month_to_date - last_quarter - last_quarter_to_date - last_year - last_year_to_date - next_week - next_four_weeks - next_month - next_quarter - next_year description: >- A QuickBooks Desktop relative updated-date macro. Choose either `updatedDateMacro` or `updatedAfter`/`updatedBefore`. - in: query name: accountsToInclude schema: description: Whether to include all accounts or only accounts in use. example: all type: string enum: - all - in_use description: Whether to include all accounts or only accounts in use. - in: query name: openBalanceAsOf schema: description: >- The date through which QuickBooks Desktop calculates open balance information. example: report_end_date type: string enum: - report_end_date - today default: today description: >- The date through which QuickBooks Desktop calculates open balance information. - in: query name: summarizeRowsBy schema: description: >- How QuickBooks Desktop calculates report data and labels report rows. example: account type: string enum: - account - balance_sheet - class - customer - customer_type - day - employee - four_week - half_month - income_statement - item_detail - item_type - month - payee - payment_method - payroll_item_detail - payroll_ytd_detail - quarter - sales_representative - sales_tax_code - shipping_method - tax_line - terms - total_only - two_week - vendor - vendor_type - week - year required: true description: >- How QuickBooks Desktop calculates report data and labels report rows. - in: query name: includeColumns schema: description: >- The report columns to include, by column type. Accepts one or more columns. **IMPORTANT**: When this parameter is present, QuickBooks Desktop omits its default report columns unless you include them here. example: - date - transaction_type - amount type: array items: type: string enum: - account - aging - amount - amount_difference - average_cost - billed_date - billing_status - calculated_amount - class - cleared_status - cost_price - credit - currency - date - debit - delivery_date - due_date - estimate_active - exchange_rate - shipment_origin - income_subject_to_tax - invoiced - item - description - last_modified_by - latest_or_prior_state - memo - updated_at - name - name_account_number - name_address - name_city - name_contact - name_email - name_fax - name_phone - name_state - name_postal_code - open_balance - original_amount - paid_amount - paid_status - paid_through_date - payment_method - payroll_item - purchase_order_number - print_status - progress_amount - progress_percent - quantity - quantity_available - quantity_on_hand - quantity_on_sales_order - received_quantity - ref_number - running_balance - sales_representative - sales_tax_code - serial_or_lot_number - shipping_date - shipping_method - source_name - split_account - ssn_or_tax_identification_number - tax_line - tax_table_version - terms - transaction_id - transaction_number - transaction_type - unit_price - user_edit - value_on_hand - wage_base - wage_base_tips required: true description: >- The report columns to include, by column type. Accepts one or more columns. **IMPORTANT**: When this parameter is present, QuickBooks Desktop omits its default report columns unless you include them here. - in: query name: basis schema: description: >- The accounting basis to use for the report. Use `cash` to base income and expenses on when money changes hands, `accrual` to base them on invoice and bill dates, or `none` to use the QuickBooks Desktop default for the report. example: accrual type: string enum: - accrual - cash - none default: none description: >- The accounting basis to use for the report. Use `cash` to base income and expenses on when money changes hands, `accrual` to base them on invoice and bill dates, or `none` to use the QuickBooks Desktop default for the report. responses: '200': description: Returns the requested custom detail report. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_report' x-codeSamples: - lang: JavaScript source: |- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const report = await conductor.qbd.reports.customDetail({ includeColumns: ['date', 'transaction_type', 'amount'], summarizeRowsBy: 'account', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(report.basis); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) report = conductor.qbd.reports.custom_detail( include_columns=["date", "transaction_type", "amount"], summarize_rows_by="account", conductor_end_user_id="end_usr_1234567abcdefg", ) print(report.basis) /quickbooks-desktop/reports/custom-summary: get: summary: Retrieve a custom summary report description: >- Retrieves a custom summary report built from the row and column axes, filters, date period, calendar, and basis options you request. This report is useful when preset summary reports do not match the dimensions you need; QuickBooks Desktop does not assume a default layout. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: query name: reportType schema: description: >- The custom summary report type to retrieve. This endpoint supports only `custom_summary`, so this parameter is optional and defaults to `custom_summary`. example: custom_summary default: custom_summary type: string enum: - custom_summary description: >- The custom summary report type to retrieve. This endpoint supports only `custom_summary`, so this parameter is optional and defaults to `custom_summary`. - in: query name: reportDateFrom schema: description: >- Filter report rows dated on or after this date, in ISO 8601 format (YYYY-MM-DD). Choose either `reportDateMacro` or `reportDateFrom`/`reportDateTo`. If you omit `reportDateFrom`, `reportDateTo`, and `reportDateMacro`, QuickBooks Desktop uses the current fiscal year to date. example: '2025-01-01' type: string format: date description: >- Filter report rows dated on or after this date, in ISO 8601 format (YYYY-MM-DD). Choose either `reportDateMacro` or `reportDateFrom`/`reportDateTo`. If you omit `reportDateFrom`, `reportDateTo`, and `reportDateMacro`, QuickBooks Desktop uses the current fiscal year to date. - in: query name: reportDateTo schema: description: >- Filter report rows dated on or before this date, in ISO 8601 format (YYYY-MM-DD). Choose either `reportDateMacro` or `reportDateFrom`/`reportDateTo`. If you omit `reportDateFrom`, `reportDateTo`, and `reportDateMacro`, QuickBooks Desktop uses the current fiscal year to date. example: '2025-02-01' type: string format: date description: >- Filter report rows dated on or before this date, in ISO 8601 format (YYYY-MM-DD). Choose either `reportDateMacro` or `reportDateFrom`/`reportDateTo`. If you omit `reportDateFrom`, `reportDateTo`, and `reportDateMacro`, QuickBooks Desktop uses the current fiscal year to date. - in: query name: reportDateMacro schema: description: >- A QuickBooks Desktop relative date macro for the report period. Choose either `reportDateMacro` or `reportDateFrom`/`reportDateTo`. example: this_year_to_date type: string enum: - all - today - this_week - this_week_to_date - this_month - this_month_to_date - this_quarter - this_quarter_to_date - this_year - this_year_to_date - yesterday - last_week - last_week_to_date - last_month - last_month_to_date - last_quarter - last_quarter_to_date - last_year - last_year_to_date - next_week - next_four_weeks - next_month - next_quarter - next_year description: >- A QuickBooks Desktop relative date macro for the report period. Choose either `reportDateMacro` or `reportDateFrom`/`reportDateTo`. - in: query name: accountType schema: description: >- Filter report rows by account type. Choose only one account filter per request: `accountType`, `accountIds`, or `accountFullNames`. example: bank type: string enum: - accounts_payable - accounts_receivable - allowed_for_1099 - ap_and_sales_tax - ap_or_credit_card - ar_and_ap - asset - balance_sheet - bank - bank_and_ar_and_ap_and_uf - bank_and_uf - cost_of_sales - credit_card - current_asset - current_asset_and_expense - current_liability - equity - equity_and_income_and_expense - expense_and_other_expense - fixed_asset - income_and_expense - income_and_other_income - liability - liability_and_equity - long_term_liability - non_posting - ordinary_expense - ordinary_income - ordinary_income_and_cogs - ordinary_income_and_expense - other_asset - other_current_asset - other_current_liability - other_expense - other_income - other_income_or_expense description: >- Filter report rows by account type. Choose only one account filter per request: `accountType`, `accountIds`, or `accountFullNames`. - in: query name: accountIds schema: description: >- Filter report rows by QuickBooks-assigned account IDs. Accepts one or more account IDs. Choose only one account filter per request: `accountType`, `accountIds`, or `accountFullNames`. example: - 80000001-1234567890 type: array items: type: string description: >- Filter report rows by QuickBooks-assigned account IDs. Accepts one or more account IDs. Choose only one account filter per request: `accountType`, `accountIds`, or `accountFullNames`. - in: query name: accountFullNames schema: description: >- Filter report rows by account `fullName` values, case-insensitive. A `fullName` is a fully qualified QuickBooks name formed by joining parent object names with the object's `name` using colons. Accepts one or more account full names. Choose only one account filter per request: `accountType`, `accountIds`, or `accountFullNames`. example: - Corporate:Accounts-Payable type: array items: type: string description: >- Filter report rows by account `fullName` values, case-insensitive. A `fullName` is a fully qualified QuickBooks name formed by joining parent object names with the object's `name` using colons. Accepts one or more account full names. Choose only one account filter per request: `accountType`, `accountIds`, or `accountFullNames`. - in: query name: entityType schema: description: >- Filter report rows by entity type, such as customer, vendor, employee, or other name. Choose only one entity filter per request: `entityType`, `entityIds`, or `entityFullNames`. example: customer type: string enum: - customer - employee - other_name - vendor description: >- Filter report rows by entity type, such as customer, vendor, employee, or other name. Choose only one entity filter per request: `entityType`, `entityIds`, or `entityFullNames`. - in: query name: entityIds schema: description: >- Filter report rows by QuickBooks-assigned entity IDs. Accepts one or more entity IDs. Choose only one entity filter per request: `entityType`, `entityIds`, or `entityFullNames`. example: - 80000001-1234567890 type: array items: type: string description: >- Filter report rows by QuickBooks-assigned entity IDs. Accepts one or more entity IDs. Choose only one entity filter per request: `entityType`, `entityIds`, or `entityFullNames`. - in: query name: entityFullNames schema: description: >- Filter report rows by entity `fullName` values, case-insensitive. A `fullName` is a fully qualified QuickBooks name formed by joining parent object names with the object's `name` using colons. Accepts one or more entity full names. Choose only one entity filter per request: `entityType`, `entityIds`, or `entityFullNames`. example: - ABC Corporation:Website Redesign Project type: array items: type: string description: >- Filter report rows by entity `fullName` values, case-insensitive. A `fullName` is a fully qualified QuickBooks name formed by joining parent object names with the object's `name` using colons. Accepts one or more entity full names. Choose only one entity filter per request: `entityType`, `entityIds`, or `entityFullNames`. - in: query name: itemType schema: description: >- Filter report rows by item type. Choose only one item filter per request: `itemType`, `itemIds`, or `itemFullNames`. example: inventory type: string enum: - all_except_fixed_asset - assembly - discount - fixed_asset - inventory - inventory_and_assembly - non_inventory - other_charge - payment - sales - sales_tax - service description: >- Filter report rows by item type. Choose only one item filter per request: `itemType`, `itemIds`, or `itemFullNames`. - in: query name: itemIds schema: description: >- Filter report rows by QuickBooks-assigned item IDs. Accepts one or more item IDs. Choose only one item filter per request: `itemType`, `itemIds`, or `itemFullNames`. example: - 80000001-1234567890 type: array items: type: string description: >- Filter report rows by QuickBooks-assigned item IDs. Accepts one or more item IDs. Choose only one item filter per request: `itemType`, `itemIds`, or `itemFullNames`. - in: query name: itemFullNames schema: description: >- Filter report rows by item `fullName` values, case-insensitive. A `fullName` is a fully qualified QuickBooks name formed by joining parent object names with the object's `name` using colons. Accepts one or more item full names. Choose only one item filter per request: `itemType`, `itemIds`, or `itemFullNames`. example: - Services:Consulting type: array items: type: string description: >- Filter report rows by item `fullName` values, case-insensitive. A `fullName` is a fully qualified QuickBooks name formed by joining parent object names with the object's `name` using colons. Accepts one or more item full names. Choose only one item filter per request: `itemType`, `itemIds`, or `itemFullNames`. - in: query name: classIds schema: description: >- Filter report rows by QuickBooks-assigned class IDs. Accepts one or more class IDs. Choose only one class filter per request: `classIds` or `classFullNames`. example: - 80000001-1234567890 type: array items: type: string description: >- Filter report rows by QuickBooks-assigned class IDs. Accepts one or more class IDs. Choose only one class filter per request: `classIds` or `classFullNames`. - in: query name: classFullNames schema: description: >- Filter report rows by class `fullName` values, case-insensitive. A `fullName` is a fully qualified QuickBooks name formed by joining parent object names with the object's `name` using colons. Accepts one or more class full names. Choose only one class filter per request: `classIds` or `classFullNames`. example: - Department:Marketing type: array items: type: string description: >- Filter report rows by class `fullName` values, case-insensitive. A `fullName` is a fully qualified QuickBooks name formed by joining parent object names with the object's `name` using colons. Accepts one or more class full names. Choose only one class filter per request: `classIds` or `classFullNames`. - in: query name: transactionTypes schema: description: >- Filter report rows by transaction type. Accepts one or more transaction types. example: - invoice - sales_receipt type: array items: type: string enum: - all - 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 description: >- Filter report rows by transaction type. Accepts one or more transaction types. - in: query name: detailLevel schema: description: >- The report detail level to include. Use `all` for all rows, `all_except_summary` to omit summary rows, or `summary_only` to return only summary rows. example: all_except_summary type: string enum: - all - all_except_summary - summary_only default: all description: >- The report detail level to include. Use `all` for all rows, `all_except_summary` to omit summary rows, or `summary_only` to return only summary rows. - in: query name: postingStatus schema: description: >- Filter report rows that are posting, non-posting, or either. Posting status refers to whether QuickBooks records the transaction in an account register. example: posting type: string enum: - either - non_posting - posting description: >- Filter report rows that are posting, non-posting, or either. Posting status refers to whether QuickBooks records the transaction in an account register. - in: query name: updatedAfter schema: description: >- Filter report rows updated on or after this date, in ISO 8601 format (YYYY-MM-DD). Choose either `updatedDateMacro` or `updatedAfter`/`updatedBefore`. example: '2025-01-01' type: string format: date description: >- Filter report rows updated on or after this date, in ISO 8601 format (YYYY-MM-DD). Choose either `updatedDateMacro` or `updatedAfter`/`updatedBefore`. - in: query name: updatedBefore schema: description: >- Filter report rows updated on or before this date, in ISO 8601 format (YYYY-MM-DD). Choose either `updatedDateMacro` or `updatedAfter`/`updatedBefore`. example: '2025-02-01' type: string format: date description: >- Filter report rows updated on or before this date, in ISO 8601 format (YYYY-MM-DD). Choose either `updatedDateMacro` or `updatedAfter`/`updatedBefore`. - in: query name: updatedDateMacro schema: description: >- A QuickBooks Desktop relative updated-date macro. Choose either `updatedDateMacro` or `updatedAfter`/`updatedBefore`. example: this_month_to_date type: string enum: - all - today - this_week - this_week_to_date - this_month - this_month_to_date - this_quarter - this_quarter_to_date - this_year - this_year_to_date - yesterday - last_week - last_week_to_date - last_month - last_month_to_date - last_quarter - last_quarter_to_date - last_year - last_year_to_date - next_week - next_four_weeks - next_month - next_quarter - next_year description: >- A QuickBooks Desktop relative updated-date macro. Choose either `updatedDateMacro` or `updatedAfter`/`updatedBefore`. - in: query name: reportCalendar schema: description: The type of year to use for the report. example: calendar_year type: string enum: - calendar_year - fiscal_year - tax_year description: The type of year to use for the report. - in: query name: rowsToReturn schema: description: >- Filters which report rows QuickBooks returns. Use `active_only` for active rows, `non_zero` for rows with non-zero values, or `all` for all rows. example: all type: string enum: - active_only - non_zero - all description: >- Filters which report rows QuickBooks returns. Use `active_only` for active rows, `non_zero` for rows with non-zero values, or `all` for all rows. - in: query name: columnsToReturn schema: description: >- Filters which report columns QuickBooks returns. Use `active_only` for active columns, `non_zero` for columns with non-zero values, or `all` for all columns. example: all type: string enum: - active_only - non_zero - all description: >- Filters which report columns QuickBooks returns. Use `active_only` for active columns, `non_zero` for columns with non-zero values, or `all` for all columns. - in: query name: summarizeColumnsBy schema: description: >- How QuickBooks Desktop calculates report data and labels report column headers. example: month type: string enum: - account - balance_sheet - class - customer - customer_type - day - employee - four_week - half_month - income_statement - item_detail - item_type - month - payee - payment_method - payroll_item_detail - payroll_ytd_detail - quarter - sales_representative - sales_tax_code - shipping_method - terms - total_only - two_week - vendor - vendor_type - week - year required: true description: >- How QuickBooks Desktop calculates report data and labels report column headers. - in: query name: summarizeRowsBy schema: description: >- How QuickBooks Desktop calculates report data and labels report rows. example: account type: string enum: - account - balance_sheet - class - customer - customer_type - day - employee - four_week - half_month - income_statement - item_detail - item_type - month - payee - payment_method - payroll_item_detail - payroll_ytd_detail - quarter - sales_representative - sales_tax_code - shipping_method - tax_line - terms - total_only - two_week - vendor - vendor_type - week - year required: true description: >- How QuickBooks Desktop calculates report data and labels report rows. - in: query name: includeSubcolumns schema: description: >- Whether to include subcolumns in the report. **NOTE**: QuickBooks Desktop may still omit subcolumns that it can easily compute from other returned values. example: true type: boolean description: >- Whether to include subcolumns in the report. **NOTE**: QuickBooks Desktop may still omit subcolumns that it can easily compute from other returned values. - in: query name: basis schema: description: >- The accounting basis to use for the report. Use `cash` to base income and expenses on when money changes hands, `accrual` to base them on invoice and bill dates, or `none` to use the QuickBooks Desktop default for the report. example: accrual type: string enum: - accrual - cash - none default: none description: >- The accounting basis to use for the report. Use `cash` to base income and expenses on when money changes hands, `accrual` to base them on invoice and bill dates, or `none` to use the QuickBooks Desktop default for the report. responses: '200': description: Returns the requested custom summary report. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_report' x-codeSamples: - lang: JavaScript source: |- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const report = await conductor.qbd.reports.customSummary({ summarizeColumnsBy: 'month', summarizeRowsBy: 'account', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(report.basis); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) report = conductor.qbd.reports.custom_summary( summarize_columns_by="month", summarize_rows_by="account", conductor_end_user_id="end_usr_1234567abcdefg", ) print(report.basis) /quickbooks-desktop/reports/payroll-detail: get: summary: Retrieve a payroll detail report description: >- Retrieves a QuickBooks Desktop payroll detail report, including employee state tax detail, payroll item detail, payroll review detail, payroll transaction detail, and payroll transactions by payee. This report is useful for auditing paycheck line items, payroll item usage, tax calculations, and payee-level payroll activity. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: query name: reportType schema: type: string enum: - employee_state_taxes_detail - payroll_item_detail - payroll_review_detail - payroll_transaction_detail - payroll_transactions_by_payee description: The payroll detail report type to retrieve. example: employee_state_taxes_detail required: true description: The payroll detail report type to retrieve. - in: query name: reportDateFrom schema: description: >- Filter report rows dated on or after this date, in ISO 8601 format (YYYY-MM-DD). Choose either `reportDateMacro` or `reportDateFrom`/`reportDateTo`. If you omit `reportDateFrom`, `reportDateTo`, and `reportDateMacro`, QuickBooks Desktop uses the current fiscal year to date. example: '2025-01-01' type: string format: date description: >- Filter report rows dated on or after this date, in ISO 8601 format (YYYY-MM-DD). Choose either `reportDateMacro` or `reportDateFrom`/`reportDateTo`. If you omit `reportDateFrom`, `reportDateTo`, and `reportDateMacro`, QuickBooks Desktop uses the current fiscal year to date. - in: query name: reportDateTo schema: description: >- Filter report rows dated on or before this date, in ISO 8601 format (YYYY-MM-DD). Choose either `reportDateMacro` or `reportDateFrom`/`reportDateTo`. If you omit `reportDateFrom`, `reportDateTo`, and `reportDateMacro`, QuickBooks Desktop uses the current fiscal year to date. example: '2025-02-01' type: string format: date description: >- Filter report rows dated on or before this date, in ISO 8601 format (YYYY-MM-DD). Choose either `reportDateMacro` or `reportDateFrom`/`reportDateTo`. If you omit `reportDateFrom`, `reportDateTo`, and `reportDateMacro`, QuickBooks Desktop uses the current fiscal year to date. - in: query name: reportDateMacro schema: description: >- A QuickBooks Desktop relative date macro for the report period. Choose either `reportDateMacro` or `reportDateFrom`/`reportDateTo`. example: this_year_to_date type: string enum: - all - today - this_week - this_week_to_date - this_month - this_month_to_date - this_quarter - this_quarter_to_date - this_year - this_year_to_date - yesterday - last_week - last_week_to_date - last_month - last_month_to_date - last_quarter - last_quarter_to_date - last_year - last_year_to_date - next_week - next_four_weeks - next_month - next_quarter - next_year description: >- A QuickBooks Desktop relative date macro for the report period. Choose either `reportDateMacro` or `reportDateFrom`/`reportDateTo`. - in: query name: accountType schema: description: >- Filter report rows by account type. Choose only one account filter per request: `accountType`, `accountIds`, or `accountFullNames`. example: bank type: string enum: - accounts_payable - accounts_receivable - allowed_for_1099 - ap_and_sales_tax - ap_or_credit_card - ar_and_ap - asset - balance_sheet - bank - bank_and_ar_and_ap_and_uf - bank_and_uf - cost_of_sales - credit_card - current_asset - current_asset_and_expense - current_liability - equity - equity_and_income_and_expense - expense_and_other_expense - fixed_asset - income_and_expense - income_and_other_income - liability - liability_and_equity - long_term_liability - non_posting - ordinary_expense - ordinary_income - ordinary_income_and_cogs - ordinary_income_and_expense - other_asset - other_current_asset - other_current_liability - other_expense - other_income - other_income_or_expense description: >- Filter report rows by account type. Choose only one account filter per request: `accountType`, `accountIds`, or `accountFullNames`. - in: query name: accountIds schema: description: >- Filter report rows by QuickBooks-assigned account IDs. Accepts one or more account IDs. Choose only one account filter per request: `accountType`, `accountIds`, or `accountFullNames`. example: - 80000001-1234567890 type: array items: type: string description: >- Filter report rows by QuickBooks-assigned account IDs. Accepts one or more account IDs. Choose only one account filter per request: `accountType`, `accountIds`, or `accountFullNames`. - in: query name: accountFullNames schema: description: >- Filter report rows by account `fullName` values, case-insensitive. A `fullName` is a fully qualified QuickBooks name formed by joining parent object names with the object's `name` using colons. Accepts one or more account full names. Choose only one account filter per request: `accountType`, `accountIds`, or `accountFullNames`. example: - Corporate:Accounts-Payable type: array items: type: string description: >- Filter report rows by account `fullName` values, case-insensitive. A `fullName` is a fully qualified QuickBooks name formed by joining parent object names with the object's `name` using colons. Accepts one or more account full names. Choose only one account filter per request: `accountType`, `accountIds`, or `accountFullNames`. - in: query name: entityType schema: description: >- Filter report rows by entity type, such as customer, vendor, employee, or other name. Choose only one entity filter per request: `entityType`, `entityIds`, or `entityFullNames`. example: customer type: string enum: - customer - employee - other_name - vendor description: >- Filter report rows by entity type, such as customer, vendor, employee, or other name. Choose only one entity filter per request: `entityType`, `entityIds`, or `entityFullNames`. - in: query name: entityIds schema: description: >- Filter report rows by QuickBooks-assigned entity IDs. Accepts one or more entity IDs. Choose only one entity filter per request: `entityType`, `entityIds`, or `entityFullNames`. example: - 80000001-1234567890 type: array items: type: string description: >- Filter report rows by QuickBooks-assigned entity IDs. Accepts one or more entity IDs. Choose only one entity filter per request: `entityType`, `entityIds`, or `entityFullNames`. - in: query name: entityFullNames schema: description: >- Filter report rows by entity `fullName` values, case-insensitive. A `fullName` is a fully qualified QuickBooks name formed by joining parent object names with the object's `name` using colons. Accepts one or more entity full names. Choose only one entity filter per request: `entityType`, `entityIds`, or `entityFullNames`. example: - ABC Corporation:Website Redesign Project type: array items: type: string description: >- Filter report rows by entity `fullName` values, case-insensitive. A `fullName` is a fully qualified QuickBooks name formed by joining parent object names with the object's `name` using colons. Accepts one or more entity full names. Choose only one entity filter per request: `entityType`, `entityIds`, or `entityFullNames`. - in: query name: itemType schema: description: >- Filter report rows by item type. Choose only one item filter per request: `itemType`, `itemIds`, or `itemFullNames`. example: inventory type: string enum: - all_except_fixed_asset - assembly - discount - fixed_asset - inventory - inventory_and_assembly - non_inventory - other_charge - payment - sales - sales_tax - service description: >- Filter report rows by item type. Choose only one item filter per request: `itemType`, `itemIds`, or `itemFullNames`. - in: query name: itemIds schema: description: >- Filter report rows by QuickBooks-assigned item IDs. Accepts one or more item IDs. Choose only one item filter per request: `itemType`, `itemIds`, or `itemFullNames`. example: - 80000001-1234567890 type: array items: type: string description: >- Filter report rows by QuickBooks-assigned item IDs. Accepts one or more item IDs. Choose only one item filter per request: `itemType`, `itemIds`, or `itemFullNames`. - in: query name: itemFullNames schema: description: >- Filter report rows by item `fullName` values, case-insensitive. A `fullName` is a fully qualified QuickBooks name formed by joining parent object names with the object's `name` using colons. Accepts one or more item full names. Choose only one item filter per request: `itemType`, `itemIds`, or `itemFullNames`. example: - Services:Consulting type: array items: type: string description: >- Filter report rows by item `fullName` values, case-insensitive. A `fullName` is a fully qualified QuickBooks name formed by joining parent object names with the object's `name` using colons. Accepts one or more item full names. Choose only one item filter per request: `itemType`, `itemIds`, or `itemFullNames`. - in: query name: classIds schema: description: >- Filter report rows by QuickBooks-assigned class IDs. Accepts one or more class IDs. Choose only one class filter per request: `classIds` or `classFullNames`. example: - 80000001-1234567890 type: array items: type: string description: >- Filter report rows by QuickBooks-assigned class IDs. Accepts one or more class IDs. Choose only one class filter per request: `classIds` or `classFullNames`. - in: query name: classFullNames schema: description: >- Filter report rows by class `fullName` values, case-insensitive. A `fullName` is a fully qualified QuickBooks name formed by joining parent object names with the object's `name` using colons. Accepts one or more class full names. Choose only one class filter per request: `classIds` or `classFullNames`. example: - Department:Marketing type: array items: type: string description: >- Filter report rows by class `fullName` values, case-insensitive. A `fullName` is a fully qualified QuickBooks name formed by joining parent object names with the object's `name` using colons. Accepts one or more class full names. Choose only one class filter per request: `classIds` or `classFullNames`. - in: query name: detailLevel schema: description: >- The report detail level to include. Use `all` for all rows, `all_except_summary` to omit summary rows, or `summary_only` to return only summary rows. example: all_except_summary type: string enum: - all - all_except_summary - summary_only default: all description: >- The report detail level to include. Use `all` for all rows, `all_except_summary` to omit summary rows, or `summary_only` to return only summary rows. - in: query name: postingStatus schema: description: >- Filter report rows that are posting, non-posting, or either. Posting status refers to whether QuickBooks records the transaction in an account register. example: posting type: string enum: - either - non_posting - posting description: >- Filter report rows that are posting, non-posting, or either. Posting status refers to whether QuickBooks records the transaction in an account register. - in: query name: updatedAfter schema: description: >- Filter report rows updated on or after this date, in ISO 8601 format (YYYY-MM-DD). Choose either `updatedDateMacro` or `updatedAfter`/`updatedBefore`. example: '2025-01-01' type: string format: date description: >- Filter report rows updated on or after this date, in ISO 8601 format (YYYY-MM-DD). Choose either `updatedDateMacro` or `updatedAfter`/`updatedBefore`. - in: query name: updatedBefore schema: description: >- Filter report rows updated on or before this date, in ISO 8601 format (YYYY-MM-DD). Choose either `updatedDateMacro` or `updatedAfter`/`updatedBefore`. example: '2025-02-01' type: string format: date description: >- Filter report rows updated on or before this date, in ISO 8601 format (YYYY-MM-DD). Choose either `updatedDateMacro` or `updatedAfter`/`updatedBefore`. - in: query name: updatedDateMacro schema: description: >- A QuickBooks Desktop relative updated-date macro. Choose either `updatedDateMacro` or `updatedAfter`/`updatedBefore`. example: this_month_to_date type: string enum: - all - today - this_week - this_week_to_date - this_month - this_month_to_date - this_quarter - this_quarter_to_date - this_year - this_year_to_date - yesterday - last_week - last_week_to_date - last_month - last_month_to_date - last_quarter - last_quarter_to_date - last_year - last_year_to_date - next_week - next_four_weeks - next_month - next_quarter - next_year description: >- A QuickBooks Desktop relative updated-date macro. Choose either `updatedDateMacro` or `updatedAfter`/`updatedBefore`. - in: query name: accountsToInclude schema: description: Whether to include all accounts or only accounts in use. example: all type: string enum: - all - in_use description: Whether to include all accounts or only accounts in use. - in: query name: openBalanceAsOf schema: description: >- The date through which QuickBooks Desktop calculates open balance information. example: report_end_date type: string enum: - report_end_date - today default: today description: >- The date through which QuickBooks Desktop calculates open balance information. - in: query name: summarizeRowsBy schema: description: >- How QuickBooks Desktop calculates report data and labels report rows. example: account type: string enum: - account - balance_sheet - class - customer - customer_type - day - employee - four_week - half_month - income_statement - item_detail - item_type - month - payee - payment_method - payroll_item_detail - payroll_ytd_detail - quarter - sales_representative - sales_tax_code - shipping_method - tax_line - terms - total_only - two_week - vendor - vendor_type - week - year description: >- How QuickBooks Desktop calculates report data and labels report rows. - in: query name: includeColumns schema: description: >- The report columns to include, by column type. Accepts one or more columns. **IMPORTANT**: When this parameter is present, QuickBooks Desktop omits its default report columns unless you include them here. example: - date - transaction_type - amount type: array items: type: string enum: - account - aging - amount - amount_difference - average_cost - billed_date - billing_status - calculated_amount - class - cleared_status - cost_price - credit - currency - date - debit - delivery_date - due_date - estimate_active - exchange_rate - shipment_origin - income_subject_to_tax - invoiced - item - description - last_modified_by - latest_or_prior_state - memo - updated_at - name - name_account_number - name_address - name_city - name_contact - name_email - name_fax - name_phone - name_state - name_postal_code - open_balance - original_amount - paid_amount - paid_status - paid_through_date - payment_method - payroll_item - purchase_order_number - print_status - progress_amount - progress_percent - quantity - quantity_available - quantity_on_hand - quantity_on_sales_order - received_quantity - ref_number - running_balance - sales_representative - sales_tax_code - serial_or_lot_number - shipping_date - shipping_method - source_name - split_account - ssn_or_tax_identification_number - tax_line - tax_table_version - terms - transaction_id - transaction_number - transaction_type - unit_price - user_edit - value_on_hand - wage_base - wage_base_tips description: >- The report columns to include, by column type. Accepts one or more columns. **IMPORTANT**: When this parameter is present, QuickBooks Desktop omits its default report columns unless you include them here. responses: '200': description: Returns the requested payroll detail report. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_report' x-codeSamples: - lang: JavaScript source: |- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const report = await conductor.qbd.reports.payrollDetail({ reportType: 'employee_state_taxes_detail', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(report.basis); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) report = conductor.qbd.reports.payroll_detail( report_type="employee_state_taxes_detail", conductor_end_user_id="end_usr_1234567abcdefg", ) print(report.basis) /quickbooks-desktop/reports/payroll-summary: get: summary: Retrieve a payroll summary report description: >- Retrieves a QuickBooks Desktop payroll summary report, including payroll totals by employee, employee earnings by payroll item, and payroll liability balances. This report is useful for wage, tax, deduction, addition, employer contribution, and unpaid payroll liability reporting. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: query name: reportType schema: type: string enum: - employee_earnings_summary - payroll_liability_balances - payroll_summary description: The payroll summary report type to retrieve. example: employee_earnings_summary required: true description: The payroll summary report type to retrieve. - in: query name: reportDateFrom schema: description: >- Filter report rows dated on or after this date, in ISO 8601 format (YYYY-MM-DD). Choose either `reportDateMacro` or `reportDateFrom`/`reportDateTo`. If you omit `reportDateFrom`, `reportDateTo`, and `reportDateMacro`, QuickBooks Desktop uses the current fiscal year to date. example: '2025-01-01' type: string format: date description: >- Filter report rows dated on or after this date, in ISO 8601 format (YYYY-MM-DD). Choose either `reportDateMacro` or `reportDateFrom`/`reportDateTo`. If you omit `reportDateFrom`, `reportDateTo`, and `reportDateMacro`, QuickBooks Desktop uses the current fiscal year to date. - in: query name: reportDateTo schema: description: >- Filter report rows dated on or before this date, in ISO 8601 format (YYYY-MM-DD). Choose either `reportDateMacro` or `reportDateFrom`/`reportDateTo`. If you omit `reportDateFrom`, `reportDateTo`, and `reportDateMacro`, QuickBooks Desktop uses the current fiscal year to date. example: '2025-02-01' type: string format: date description: >- Filter report rows dated on or before this date, in ISO 8601 format (YYYY-MM-DD). Choose either `reportDateMacro` or `reportDateFrom`/`reportDateTo`. If you omit `reportDateFrom`, `reportDateTo`, and `reportDateMacro`, QuickBooks Desktop uses the current fiscal year to date. - in: query name: reportDateMacro schema: description: >- A QuickBooks Desktop relative date macro for the report period. Choose either `reportDateMacro` or `reportDateFrom`/`reportDateTo`. example: this_year_to_date type: string enum: - all - today - this_week - this_week_to_date - this_month - this_month_to_date - this_quarter - this_quarter_to_date - this_year - this_year_to_date - yesterday - last_week - last_week_to_date - last_month - last_month_to_date - last_quarter - last_quarter_to_date - last_year - last_year_to_date - next_week - next_four_weeks - next_month - next_quarter - next_year description: >- A QuickBooks Desktop relative date macro for the report period. Choose either `reportDateMacro` or `reportDateFrom`/`reportDateTo`. - in: query name: accountType schema: description: >- Filter report rows by account type. Choose only one account filter per request: `accountType`, `accountIds`, or `accountFullNames`. example: bank type: string enum: - accounts_payable - accounts_receivable - allowed_for_1099 - ap_and_sales_tax - ap_or_credit_card - ar_and_ap - asset - balance_sheet - bank - bank_and_ar_and_ap_and_uf - bank_and_uf - cost_of_sales - credit_card - current_asset - current_asset_and_expense - current_liability - equity - equity_and_income_and_expense - expense_and_other_expense - fixed_asset - income_and_expense - income_and_other_income - liability - liability_and_equity - long_term_liability - non_posting - ordinary_expense - ordinary_income - ordinary_income_and_cogs - ordinary_income_and_expense - other_asset - other_current_asset - other_current_liability - other_expense - other_income - other_income_or_expense description: >- Filter report rows by account type. Choose only one account filter per request: `accountType`, `accountIds`, or `accountFullNames`. - in: query name: accountIds schema: description: >- Filter report rows by QuickBooks-assigned account IDs. Accepts one or more account IDs. Choose only one account filter per request: `accountType`, `accountIds`, or `accountFullNames`. example: - 80000001-1234567890 type: array items: type: string description: >- Filter report rows by QuickBooks-assigned account IDs. Accepts one or more account IDs. Choose only one account filter per request: `accountType`, `accountIds`, or `accountFullNames`. - in: query name: accountFullNames schema: description: >- Filter report rows by account `fullName` values, case-insensitive. A `fullName` is a fully qualified QuickBooks name formed by joining parent object names with the object's `name` using colons. Accepts one or more account full names. Choose only one account filter per request: `accountType`, `accountIds`, or `accountFullNames`. example: - Corporate:Accounts-Payable type: array items: type: string description: >- Filter report rows by account `fullName` values, case-insensitive. A `fullName` is a fully qualified QuickBooks name formed by joining parent object names with the object's `name` using colons. Accepts one or more account full names. Choose only one account filter per request: `accountType`, `accountIds`, or `accountFullNames`. - in: query name: entityType schema: description: >- Filter report rows by entity type, such as customer, vendor, employee, or other name. Choose only one entity filter per request: `entityType`, `entityIds`, or `entityFullNames`. example: customer type: string enum: - customer - employee - other_name - vendor description: >- Filter report rows by entity type, such as customer, vendor, employee, or other name. Choose only one entity filter per request: `entityType`, `entityIds`, or `entityFullNames`. - in: query name: entityIds schema: description: >- Filter report rows by QuickBooks-assigned entity IDs. Accepts one or more entity IDs. Choose only one entity filter per request: `entityType`, `entityIds`, or `entityFullNames`. example: - 80000001-1234567890 type: array items: type: string description: >- Filter report rows by QuickBooks-assigned entity IDs. Accepts one or more entity IDs. Choose only one entity filter per request: `entityType`, `entityIds`, or `entityFullNames`. - in: query name: entityFullNames schema: description: >- Filter report rows by entity `fullName` values, case-insensitive. A `fullName` is a fully qualified QuickBooks name formed by joining parent object names with the object's `name` using colons. Accepts one or more entity full names. Choose only one entity filter per request: `entityType`, `entityIds`, or `entityFullNames`. example: - ABC Corporation:Website Redesign Project type: array items: type: string description: >- Filter report rows by entity `fullName` values, case-insensitive. A `fullName` is a fully qualified QuickBooks name formed by joining parent object names with the object's `name` using colons. Accepts one or more entity full names. Choose only one entity filter per request: `entityType`, `entityIds`, or `entityFullNames`. - in: query name: itemType schema: description: >- Filter report rows by item type. Choose only one item filter per request: `itemType`, `itemIds`, or `itemFullNames`. example: inventory type: string enum: - all_except_fixed_asset - assembly - discount - fixed_asset - inventory - inventory_and_assembly - non_inventory - other_charge - payment - sales - sales_tax - service description: >- Filter report rows by item type. Choose only one item filter per request: `itemType`, `itemIds`, or `itemFullNames`. - in: query name: itemIds schema: description: >- Filter report rows by QuickBooks-assigned item IDs. Accepts one or more item IDs. Choose only one item filter per request: `itemType`, `itemIds`, or `itemFullNames`. example: - 80000001-1234567890 type: array items: type: string description: >- Filter report rows by QuickBooks-assigned item IDs. Accepts one or more item IDs. Choose only one item filter per request: `itemType`, `itemIds`, or `itemFullNames`. - in: query name: itemFullNames schema: description: >- Filter report rows by item `fullName` values, case-insensitive. A `fullName` is a fully qualified QuickBooks name formed by joining parent object names with the object's `name` using colons. Accepts one or more item full names. Choose only one item filter per request: `itemType`, `itemIds`, or `itemFullNames`. example: - Services:Consulting type: array items: type: string description: >- Filter report rows by item `fullName` values, case-insensitive. A `fullName` is a fully qualified QuickBooks name formed by joining parent object names with the object's `name` using colons. Accepts one or more item full names. Choose only one item filter per request: `itemType`, `itemIds`, or `itemFullNames`. - in: query name: classIds schema: description: >- Filter report rows by QuickBooks-assigned class IDs. Accepts one or more class IDs. Choose only one class filter per request: `classIds` or `classFullNames`. example: - 80000001-1234567890 type: array items: type: string description: >- Filter report rows by QuickBooks-assigned class IDs. Accepts one or more class IDs. Choose only one class filter per request: `classIds` or `classFullNames`. - in: query name: classFullNames schema: description: >- Filter report rows by class `fullName` values, case-insensitive. A `fullName` is a fully qualified QuickBooks name formed by joining parent object names with the object's `name` using colons. Accepts one or more class full names. Choose only one class filter per request: `classIds` or `classFullNames`. example: - Department:Marketing type: array items: type: string description: >- Filter report rows by class `fullName` values, case-insensitive. A `fullName` is a fully qualified QuickBooks name formed by joining parent object names with the object's `name` using colons. Accepts one or more class full names. Choose only one class filter per request: `classIds` or `classFullNames`. - in: query name: detailLevel schema: description: >- The report detail level to include. Use `all` for all rows, `all_except_summary` to omit summary rows, or `summary_only` to return only summary rows. example: all_except_summary type: string enum: - all - all_except_summary - summary_only default: all description: >- The report detail level to include. Use `all` for all rows, `all_except_summary` to omit summary rows, or `summary_only` to return only summary rows. - in: query name: postingStatus schema: description: >- Filter report rows that are posting, non-posting, or either. Posting status refers to whether QuickBooks records the transaction in an account register. example: posting type: string enum: - either - non_posting - posting description: >- Filter report rows that are posting, non-posting, or either. Posting status refers to whether QuickBooks records the transaction in an account register. - in: query name: updatedAfter schema: description: >- Filter report rows updated on or after this date, in ISO 8601 format (YYYY-MM-DD). Choose either `updatedDateMacro` or `updatedAfter`/`updatedBefore`. example: '2025-01-01' type: string format: date description: >- Filter report rows updated on or after this date, in ISO 8601 format (YYYY-MM-DD). Choose either `updatedDateMacro` or `updatedAfter`/`updatedBefore`. - in: query name: updatedBefore schema: description: >- Filter report rows updated on or before this date, in ISO 8601 format (YYYY-MM-DD). Choose either `updatedDateMacro` or `updatedAfter`/`updatedBefore`. example: '2025-02-01' type: string format: date description: >- Filter report rows updated on or before this date, in ISO 8601 format (YYYY-MM-DD). Choose either `updatedDateMacro` or `updatedAfter`/`updatedBefore`. - in: query name: updatedDateMacro schema: description: >- A QuickBooks Desktop relative updated-date macro. Choose either `updatedDateMacro` or `updatedAfter`/`updatedBefore`. example: this_month_to_date type: string enum: - all - today - this_week - this_week_to_date - this_month - this_month_to_date - this_quarter - this_quarter_to_date - this_year - this_year_to_date - yesterday - last_week - last_week_to_date - last_month - last_month_to_date - last_quarter - last_quarter_to_date - last_year - last_year_to_date - next_week - next_four_weeks - next_month - next_quarter - next_year description: >- A QuickBooks Desktop relative updated-date macro. Choose either `updatedDateMacro` or `updatedAfter`/`updatedBefore`. - in: query name: reportCalendar schema: description: The type of year to use for the report. example: calendar_year type: string enum: - calendar_year - fiscal_year - tax_year description: The type of year to use for the report. - in: query name: rowsToReturn schema: description: >- Filters which report rows QuickBooks returns. Use `active_only` for active rows, `non_zero` for rows with non-zero values, or `all` for all rows. example: all type: string enum: - active_only - non_zero - all description: >- Filters which report rows QuickBooks returns. Use `active_only` for active rows, `non_zero` for rows with non-zero values, or `all` for all rows. - in: query name: columnsToReturn schema: description: >- Filters which report columns QuickBooks returns. Use `active_only` for active columns, `non_zero` for columns with non-zero values, or `all` for all columns. example: all type: string enum: - active_only - non_zero - all description: >- Filters which report columns QuickBooks returns. Use `active_only` for active columns, `non_zero` for columns with non-zero values, or `all` for all columns. - in: query name: summarizeColumnsBy schema: description: >- How QuickBooks Desktop calculates report data and labels report column headers. example: month type: string enum: - account - balance_sheet - class - customer - customer_type - day - employee - four_week - half_month - income_statement - item_detail - item_type - month - payee - payment_method - payroll_item_detail - payroll_ytd_detail - quarter - sales_representative - sales_tax_code - shipping_method - terms - total_only - two_week - vendor - vendor_type - week - year description: >- How QuickBooks Desktop calculates report data and labels report column headers. - in: query name: includeSubcolumns schema: description: >- Whether to include subcolumns in the report. **NOTE**: QuickBooks Desktop may still omit subcolumns that it can easily compute from other returned values. example: true type: boolean description: >- Whether to include subcolumns in the report. **NOTE**: QuickBooks Desktop may still omit subcolumns that it can easily compute from other returned values. responses: '200': description: Returns the requested payroll summary report. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_report' x-codeSamples: - lang: JavaScript source: |- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const report = await conductor.qbd.reports.payrollSummary({ reportType: 'employee_earnings_summary', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(report.basis); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) report = conductor.qbd.reports.payroll_summary( report_type="employee_earnings_summary", conductor_end_user_id="end_usr_1234567abcdefg", ) print(report.basis) /quickbooks-desktop/sales-orders: get: summary: List all sales orders description: >- Returns a list of sales orders. Use the `cursor` parameter to paginate through the results. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: query name: ids schema: description: >- Filter for specific sales orders 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 type: array items: type: string description: >- Filter for specific sales orders 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. - in: query name: refNumbers schema: description: >- Filter for specific sales orders 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: - SALES ORDER-1234 type: array items: type: string description: >- Filter for specific sales orders 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. - in: query name: limit schema: default: 150 description: >- 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. example: 150 type: integer minimum: 1 maximum: 150 description: >- 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. - in: query name: cursor schema: description: >- 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 type: string description: >- 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. - in: query name: updatedAfter schema: description: >- Filter for sales orders 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. example: 2025-01-01T12:34:56.000Z type: string description: >- Filter for sales orders 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. - in: query name: updatedBefore schema: description: >- Filter for sales orders 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. example: 2025-02-01T12:34:56.000Z type: string description: >- Filter for sales orders 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. - in: query name: transactionDateFrom schema: description: >- Filter for sales orders 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-01` → `2025-01-01T00:00:00`). example: '2025-01-01' type: string format: date description: >- Filter for sales orders 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-01` → `2025-01-01T00:00:00`). - in: query name: transactionDateTo schema: description: >- Filter for sales orders 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-01` → `2025-01-01T23:59:59`). example: '2025-02-01' type: string format: date description: >- Filter for sales orders 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-01` → `2025-01-01T23:59:59`). - in: query name: customerIds schema: description: Filter for sales orders created for these customers. example: - 80000001-1234567890 type: array items: type: string description: Filter for sales orders created for these customers. - in: query name: refNumberContains schema: description: >- Filter for sales orders whose `refNumber` contains this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberStartsWith` or `refNumberEndsWith`. example: SO-1234 type: string description: >- Filter for sales orders whose `refNumber` contains this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberStartsWith` or `refNumberEndsWith`. - in: query name: refNumberStartsWith schema: description: >- Filter for sales orders whose `refNumber` starts with this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberContains` or `refNumberEndsWith`. example: SO type: string description: >- Filter for sales orders whose `refNumber` starts with this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberContains` or `refNumberEndsWith`. - in: query name: refNumberEndsWith schema: description: >- Filter for sales orders whose `refNumber` ends with this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberContains` or `refNumberStartsWith`. example: '1234' type: string description: >- Filter for sales orders whose `refNumber` ends with this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberContains` or `refNumberStartsWith`. - in: query name: refNumberFrom schema: description: >- Filter for sales orders 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: SO-0001 type: string description: >- Filter for sales orders 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. - in: query name: refNumberTo schema: description: >- Filter for sales orders 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: SO-9999 type: string description: >- Filter for sales orders 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. - in: query name: currencyIds schema: description: Filter for sales orders in these currencies. example: - 80000001-1234567890 type: array items: type: string description: Filter for sales orders in these currencies. - in: query name: includeLineItems schema: description: Whether to include line items in the response. Defaults to `true`. example: true type: boolean default: true description: Whether to include line items in the response. Defaults to `true`. - in: query name: includeLinkedTransactions schema: description: >- Whether to include linked transactions in the response. Defaults to `false`. For example, a payment linked to the corresponding sales order. example: false type: boolean default: false description: >- Whether to include linked transactions in the response. Defaults to `false`. For example, a payment linked to the corresponding sales order. responses: '200': description: Returns a list of sales orders. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: objectType: description: The type of object. This value is always `"list"`. example: list type: string const: list url: type: string description: The endpoint URL where this list can be accessed. example: /v1/quickbooks-desktop/sales-orders data: type: array items: $ref: '#/components/schemas/qbd_sales_order' description: The array of sales orders. nextCursor: anyOf: - type: string - type: 'null' description: >- The `nextCursor` is a pagination token returned in the response when you use the `limit` parameter in your request. To retrieve subsequent pages of results, include this token as the value of the `cursor` request parameter in your following API calls. **NOTE**: The `nextCursor` value remains constant throughout the pagination process for a specific list instance; continue to use the same `nextCursor` token in each request to fetch additional pages. example: 12345678-abcd-abcd-example-1234567890ab remainingCount: anyOf: - type: number - type: 'null' description: The number of objects remaining to be fetched. example: 10 hasMore: type: boolean description: Indicates whether there are more objects to be fetched. required: - objectType - url - data - nextCursor - remainingCount - hasMore additionalProperties: false x-codeSamples: - lang: JavaScript source: |- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); // Automatically fetches more pages as needed. for await (const salesOrder of conductor.qbd.salesOrders.list({ conductorEndUserId: 'end_usr_1234567abcdefg', })) { console.log(salesOrder.id); } - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) page = conductor.qbd.sales_orders.list( conductor_end_user_id="end_usr_1234567abcdefg", ) page = page.data[0] print(page.id) post: summary: Create a sales order description: Creates a new sales order. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. requestBody: required: true content: application/json: schema: type: object properties: customerId: description: >- The customer or customer-job associated with this sales order. example: 80000001-1234567890 type: string maxLength: 36 classId: description: >- The sales 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 sales order's line items unless overridden at the line item level. example: 80000001-1234567890 type: string maxLength: 36 documentTemplateId: description: >- The predefined template in QuickBooks that determines the layout and formatting for this sales order when printed or displayed. example: 80000001-1234567890 type: string maxLength: 36 transactionDate: type: string format: date description: >- The date of this sales order, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-01' refNumber: description: >- The case-sensitive user-defined reference number for this sales 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. When left blank in this create request, this field will be left blank in QuickBooks (i.e., it does *not* auto-increment). Maximum length: 11 characters. example: SO-1234 type: string maxLength: 11 billingAddress: description: The sales order's billing address. type: object properties: line1: description: >- The first line of the address (e.g., street, PO Box, or company name). Maximum length: 41 characters. example: Conductor Labs Inc. type: string maxLength: 41 line2: description: >- The second line of the address, if needed (e.g., apartment, suite, unit, or building). Maximum length: 41 characters. example: 540 Market St. type: string maxLength: 41 line3: description: |- The third line of the address, if needed. Maximum length: 41 characters. example: Suite 100 type: string maxLength: 41 line4: description: |- The fourth line of the address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 line5: description: |- The fifth line of the address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 city: description: >- The city, district, suburb, town, or village name of the address. Maximum length: 31 characters. example: San Francisco type: string maxLength: 31 state: description: >- The state, county, province, or region name of the address. Maximum length: 21 characters. example: CA type: string maxLength: 21 postalCode: description: |- The postal code or ZIP code of the address. Maximum length: 13 characters. example: '94110' type: string maxLength: 13 country: description: The country name of the address. example: United States type: string note: description: >- A note written at the bottom of the address in the form in which it appears, such as the invoice form. example: Conductor HQ type: string additionalProperties: false shippingAddress: description: The sales order's shipping address. type: object properties: line1: description: >- The first line of the address (e.g., street, PO Box, or company name). Maximum length: 41 characters. example: Conductor Labs Inc. type: string maxLength: 41 line2: description: >- The second line of the address, if needed (e.g., apartment, suite, unit, or building). Maximum length: 41 characters. example: 540 Market St. type: string maxLength: 41 line3: description: |- The third line of the address, if needed. Maximum length: 41 characters. example: Suite 100 type: string maxLength: 41 line4: description: |- The fourth line of the address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 line5: description: |- The fifth line of the address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 city: description: >- The city, district, suburb, town, or village name of the address. Maximum length: 31 characters. example: San Francisco type: string maxLength: 31 state: description: >- The state, county, province, or region name of the address. Maximum length: 21 characters. example: CA type: string maxLength: 21 postalCode: description: |- The postal code or ZIP code of the address. Maximum length: 13 characters. example: '94110' type: string maxLength: 13 country: description: The country name of the address. example: United States type: string note: description: >- A note written at the bottom of the address in the form in which it appears, such as the invoice form. example: Conductor HQ type: string additionalProperties: false purchaseOrderNumber: description: >- The customer's Purchase Order (PO) number associated with this sales order. This field is often used to cross-reference the sales order with the customer's purchasing system. Maximum length: 25 characters. example: PO-1234 type: string maxLength: 25 termsId: description: >- The sales order's payment terms, defining when payment is due and any applicable discounts. example: 80000001-1234567890 type: string maxLength: 36 dueDate: description: >- The date by which this sales order must be paid, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-31' type: string format: date salesRepresentativeId: description: >- The sales order's sales representative. Sales representatives can be employees, vendors, or other names in QuickBooks. example: 80000001-1234567890 type: string maxLength: 36 shipmentOrigin: description: >- The origin location from where the product associated with this sales 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. example: San Francisco, CA type: string maxLength: 13 shippingDate: description: >- The date when the products or services for this sales order were shipped or are expected to be shipped, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-01' type: string format: date shippingMethodId: description: >- The shipping method used for this sales order, such as standard mail or overnight delivery. example: 80000001-1234567890 type: string maxLength: 36 salesTaxItemId: description: >- The sales-tax item used to calculate the actual tax amount for this sales order's transactions by applying a specific tax rate collected for a single tax agency. Unlike `salesTaxCode`, which only indicates general taxability, this field drives the actual tax calculation and reporting. example: 80000001-1234567890 type: string maxLength: 36 isManuallyClosed: description: >- Indicates whether this sales order has been manually marked as closed, even if it has not been invoiced. example: true default: false type: boolean memo: description: A memo or note for this sales order. example: Customer requested rush delivery type: string customerMessageId: description: The message to display to the customer on the sales order. example: 80000001-1234567890 type: string maxLength: 36 isQueuedForPrint: type: boolean description: >- Indicates whether this sales order is included in the queue of documents for QuickBooks to print. example: true isQueuedForEmail: description: >- Indicates whether this sales order is included in the queue of documents for QuickBooks to email to the customer. example: true type: boolean salesTaxCodeId: description: >- The sales-tax code for this sales order, determining whether it is taxable or non-taxable. This can be overridden at the transaction-line level. 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. example: 80000001-1234567890 type: string maxLength: 36 otherCustomField: description: >- A built-in custom field for additional information specific to this sales order. Unlike the user-defined fields in the `customFields` array, this is a standard QuickBooks field that exists for all sales orders for convenience. Developers often use this field for tracking information that doesn't fit into other standard QuickBooks fields. Unlike `otherCustomField1` and `otherCustomField2`, which are line item fields, this exists at the transaction level. Hidden by default in the QuickBooks UI. example: Special handling required type: string exchangeRate: description: >- The market exchange rate between this sales 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: 1.2345 type: number externalId: type: string format: uuid description: >- 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. **IMPORTANT**: This field must be formatted as a valid GUID; otherwise, QuickBooks will return an error. example: 12345678-abcd-1234-abcd-1234567890ab lines: description: >- The sales order's line items, each representing a single product or service ordered. **IMPORTANT**: You must specify `lines`, `lineGroups`, or both when creating a sales order. minItems: 1 type: array items: type: object properties: itemId: description: >- The item associated with this sales 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. example: 80000001-1234567890 type: string maxLength: 36 description: description: A description of this sales order line. example: Widget Model X100 - Blue type: string quantity: description: >- The quantity of the item associated with this sales order line. This field cannot be cleared. **NOTE**: Do not use this field if the associated item is a discount item. example: 5 type: number unitOfMeasure: description: >- The unit-of-measure used for the `quantity` in this sales order line. Must be a valid unit within the item's available units of measure. example: Each type: string rate: description: >- The price per unit for this sales 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. Decimal string format: up to 5 decimal places and up to 10 digits before the decimal point (for example, "123.45"). example: '10.00' type: string ratePercent: description: >- The price of this sales order line expressed as a percentage. Typically used for discount or markup items. example: '10.5' type: string priceLevelId: description: >- The price level applied to this sales order line. This overrides any price level set on the corresponding customer. The resulting sales order line will not show this price level, only the final `rate` calculated from it. example: 80000001-1234567890 type: string maxLength: 36 classId: description: >- The sales 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 sales order lines unless overridden here, at the transaction line level. example: 80000001-1234567890 type: string maxLength: 36 amount: description: >- The monetary amount of this sales 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. Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45"). example: '1000.00' type: string priceRuleConflictStrategy: description: >- Specifies how to resolve price rule conflicts when adding or modifying this sales order line. example: base_price type: string enum: - base_price - zero inventorySiteId: description: >- The site location where inventory for the item associated with this sales order line is stored. example: 80000001-1234567890 type: string maxLength: 36 inventorySiteLocationId: description: >- The specific location (e.g., bin or shelf) within the inventory site where the item associated with this sales order line is stored. example: 80000001-1234567890 type: string maxLength: 36 serialNumber: description: >- The serial number of the item associated with this sales order line. This is used for tracking individual units of serialized inventory items. example: SN1234567890 type: string lotNumber: description: >- The lot number of the item associated with this sales order line. Used for tracking groups of inventory items that are purchased or manufactured together. example: LOT2023-001 type: string salesTaxCodeId: description: >- The sales-tax code for this sales 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. example: 80000001-1234567890 type: string maxLength: 36 isManuallyClosed: description: >- Indicates whether this sales order line has been manually marked as closed, even if it has not been invoiced. example: true default: false type: boolean otherCustomField1: description: >- A built-in custom field for additional information specific to this sales order line. Unlike the user-defined fields in the `customFields` array, this is a standard QuickBooks field that exists for all sales 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. example: Special handling required type: string otherCustomField2: description: >- A second built-in custom field for additional information specific to this sales order line. Unlike the user-defined fields in the `customFields` array, this is a standard QuickBooks field that exists for all sales 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. example: Always ship with a spare type: string customFields: description: >- The custom fields for the sales order line object, added as user-defined data extensions, not included in the standard QuickBooks object. minItems: 1 type: array items: type: object properties: ownerId: type: string description: >- 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. example: '0' name: type: string description: >- 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. example: Customer Rating value: type: string description: >- The value of this custom field. The maximum length depends on the field's data type. example: Premium required: - ownerId - name - value additionalProperties: false additionalProperties: false lineGroups: description: >- The sales order's line item groups, each representing a predefined set of related items. **IMPORTANT**: You must specify `lines`, `lineGroups`, or both when creating a sales order. minItems: 1 type: array items: type: object properties: itemGroupId: description: >- The sales order line group's item group, representing a predefined set of items bundled because they are commonly purchased together or grouped for faster entry. example: 80000001-1234567890 type: string maxLength: 36 quantity: description: >- The quantity of the item group associated with this sales order line group. This field cannot be cleared. **NOTE**: Do not use this field if the associated item group is a discount item group. example: 5 type: number unitOfMeasure: description: >- The unit-of-measure used for the `quantity` in this sales order line group. Must be a valid unit within the item's available units of measure. example: Each type: string inventorySiteId: description: >- The site location where inventory for the item group associated with this sales order line group is stored. example: 80000001-1234567890 type: string maxLength: 36 inventorySiteLocationId: description: >- The specific location (e.g., bin or shelf) within the inventory site where the item group associated with this sales order line group is stored. example: 80000001-1234567890 type: string maxLength: 36 customFields: description: >- The custom fields for the sales order line group object, added as user-defined data extensions, not included in the standard QuickBooks object. minItems: 1 type: array items: type: object properties: ownerId: type: string description: >- 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. example: '0' name: type: string description: >- 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. example: Customer Rating value: type: string description: >- The value of this custom field. The maximum length depends on the field's data type. example: Premium required: - ownerId - name - value additionalProperties: false required: - itemGroupId additionalProperties: false salesChannelName: description: The type of the sales channel for this sales order. example: ecommerce type: string enum: - blank - ecommerce salesStoreName: description: The name of the sales store for this sales order. example: Store 1 type: string salesStoreType: description: The type of the sales store for this sales order. example: Retail type: string required: - customerId - transactionDate additionalProperties: false responses: '200': description: Returns the newly created sales order. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_sales_order' x-codeSamples: - lang: JavaScript source: |- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const salesOrder = await conductor.qbd.salesOrders.create({ customerId: '80000001-1234567890', transactionDate: '2024-10-01', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(salesOrder.id); - lang: Python source: |- import os from datetime import date from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) sales_order = conductor.qbd.sales_orders.create( customer_id="80000001-1234567890", transaction_date=date.fromisoformat("2024-10-01"), conductor_end_user_id="end_usr_1234567abcdefg", ) print(sales_order.id) /quickbooks-desktop/sales-orders/{id}: get: summary: Retrieve a sales order description: >- Retrieves a sales order by ID. **IMPORTANT:** If you need to fetch multiple specific sales 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. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the sales order to retrieve. example: 123ABC-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the sales order to retrieve. responses: '200': description: Returns the specified sales order. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_sales_order' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const salesOrder = await conductor.qbd.salesOrders.retrieve('123ABC-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(salesOrder.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) sales_order = conductor.qbd.sales_orders.retrieve( id="123ABC-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(sales_order.id) post: summary: Update a sales order description: >- Updates an existing sales 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. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the sales order to update. example: 123ABC-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the sales order to update. requestBody: required: true content: application/json: schema: type: object properties: revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of the sales 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. example: '1721172183' customerId: description: >- The customer or customer-job associated with this sales order. example: 80000001-1234567890 type: string maxLength: 36 classId: description: >- The sales 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 sales order's line items unless overridden at the line item level. example: 80000001-1234567890 type: string maxLength: 36 documentTemplateId: description: >- The predefined template in QuickBooks that determines the layout and formatting for this sales order when printed or displayed. example: 80000001-1234567890 type: string maxLength: 36 transactionDate: description: >- The date of this sales order, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-01' type: string format: date refNumber: description: >- The case-sensitive user-defined reference number for this sales 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. example: SO-1234 type: string maxLength: 11 billingAddress: description: The sales order's billing address. type: object properties: line1: description: >- The first line of the address (e.g., street, PO Box, or company name). Maximum length: 41 characters. example: Conductor Labs Inc. type: string maxLength: 41 line2: description: >- The second line of the address, if needed (e.g., apartment, suite, unit, or building). Maximum length: 41 characters. example: 540 Market St. type: string maxLength: 41 line3: description: |- The third line of the address, if needed. Maximum length: 41 characters. example: Suite 100 type: string maxLength: 41 line4: description: |- The fourth line of the address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 line5: description: |- The fifth line of the address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 city: description: >- The city, district, suburb, town, or village name of the address. Maximum length: 31 characters. example: San Francisco type: string maxLength: 31 state: description: >- The state, county, province, or region name of the address. Maximum length: 21 characters. example: CA type: string maxLength: 21 postalCode: description: |- The postal code or ZIP code of the address. Maximum length: 13 characters. example: '94110' type: string maxLength: 13 country: description: The country name of the address. example: United States type: string note: description: >- A note written at the bottom of the address in the form in which it appears, such as the invoice form. example: Conductor HQ type: string additionalProperties: false shippingAddress: description: The sales order's shipping address. type: object properties: line1: description: >- The first line of the address (e.g., street, PO Box, or company name). Maximum length: 41 characters. example: Conductor Labs Inc. type: string maxLength: 41 line2: description: >- The second line of the address, if needed (e.g., apartment, suite, unit, or building). Maximum length: 41 characters. example: 540 Market St. type: string maxLength: 41 line3: description: |- The third line of the address, if needed. Maximum length: 41 characters. example: Suite 100 type: string maxLength: 41 line4: description: |- The fourth line of the address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 line5: description: |- The fifth line of the address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 city: description: >- The city, district, suburb, town, or village name of the address. Maximum length: 31 characters. example: San Francisco type: string maxLength: 31 state: description: >- The state, county, province, or region name of the address. Maximum length: 21 characters. example: CA type: string maxLength: 21 postalCode: description: |- The postal code or ZIP code of the address. Maximum length: 13 characters. example: '94110' type: string maxLength: 13 country: description: The country name of the address. example: United States type: string note: description: >- A note written at the bottom of the address in the form in which it appears, such as the invoice form. example: Conductor HQ type: string additionalProperties: false purchaseOrderNumber: description: >- The customer's Purchase Order (PO) number associated with this sales order. This field is often used to cross-reference the sales order with the customer's purchasing system. Maximum length: 25 characters. example: PO-1234 type: string maxLength: 25 termsId: description: >- The sales order's payment terms, defining when payment is due and any applicable discounts. example: 80000001-1234567890 type: string maxLength: 36 dueDate: description: >- The date by which this sales order must be paid, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-31' type: string format: date salesRepresentativeId: description: >- The sales order's sales representative. Sales representatives can be employees, vendors, or other names in QuickBooks. example: 80000001-1234567890 type: string maxLength: 36 shipmentOrigin: description: >- The origin location from where the product associated with this sales 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. example: San Francisco, CA type: string maxLength: 13 shippingDate: description: >- The date when the products or services for this sales order were shipped or are expected to be shipped, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-01' type: string format: date shippingMethodId: description: >- The shipping method used for this sales order, such as standard mail or overnight delivery. example: 80000001-1234567890 type: string maxLength: 36 salesTaxItemId: description: >- The sales-tax item used to calculate the actual tax amount for this sales order's transactions by applying a specific tax rate collected for a single tax agency. Unlike `salesTaxCode`, which only indicates general taxability, this field drives the actual tax calculation and reporting. example: 80000001-1234567890 type: string maxLength: 36 isManuallyClosed: description: >- Indicates whether this sales order has been manually marked as closed, even if it has not been invoiced. example: true type: boolean memo: description: A memo or note for this sales order. example: Customer requested rush delivery type: string customerMessageId: description: The message to display to the customer on the sales order. example: 80000001-1234567890 type: string maxLength: 36 isQueuedForPrint: type: boolean description: >- Indicates whether this sales order is included in the queue of documents for QuickBooks to print. example: true isQueuedForEmail: description: >- Indicates whether this sales order is included in the queue of documents for QuickBooks to email to the customer. example: true type: boolean salesTaxCodeId: description: >- The sales-tax code for this sales order, determining whether it is taxable or non-taxable. This can be overridden at the transaction-line level. 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. example: 80000001-1234567890 type: string maxLength: 36 otherCustomField: description: >- A built-in custom field for additional information specific to this sales order. Unlike the user-defined fields in the `customFields` array, this is a standard QuickBooks field that exists for all sales orders for convenience. Developers often use this field for tracking information that doesn't fit into other standard QuickBooks fields. Unlike `otherCustomField1` and `otherCustomField2`, which are line item fields, this exists at the transaction level. Hidden by default in the QuickBooks UI. example: Special handling required type: string exchangeRate: description: >- The market exchange rate between this sales 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: 1.2345 type: number lines: description: >- The sales order's line items, each representing a single product or service ordered. **IMPORTANT**: 1. Including this array in your update request will **REPLACE** all existing line items for the sales order with this array. To keep any existing line items, you must include them in this array even if they have not changed. **Any line items not included will be removed.** 2. To add a new line item, include it here with the `id` field set to `-1`. 3. If you do not wish to modify any line items, omit this field entirely to keep them unchanged. minItems: 1 type: array items: type: object properties: id: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of an existing sales order line you wish to retain or update. **IMPORTANT**: Set this field to `-1` for new sales order lines you wish to add. example: 456DEF-1234567890 itemId: description: >- The item associated with this sales 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. example: 80000001-1234567890 type: string maxLength: 36 description: description: A description of this sales order line. example: Widget Model X100 - Blue type: string quantity: description: >- The quantity of the item associated with this sales order line. This field cannot be cleared. **NOTE**: Do not use this field if the associated item is a discount item. example: 5 type: number unitOfMeasure: description: >- The unit-of-measure used for the `quantity` in this sales order line. Must be a valid unit within the item's available units of measure. example: Each type: string overrideUnitOfMeasureSetId: description: >- Specifies an alternative unit-of-measure set when updating this sales 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. example: 80000001-1234567890 type: string maxLength: 36 rate: description: >- The price per unit for this sales 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. Decimal string format: up to 5 decimal places and up to 10 digits before the decimal point (for example, "123.45"). example: '10.00' type: string ratePercent: description: >- The price of this sales order line expressed as a percentage. Typically used for discount or markup items. example: '10.5' type: string priceLevelId: description: >- The price level applied to this sales order line. This overrides any price level set on the corresponding customer. The resulting sales order line will not show this price level, only the final `rate` calculated from it. example: 80000001-1234567890 type: string maxLength: 36 classId: description: >- The sales 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 sales order lines unless overridden here, at the transaction line level. example: 80000001-1234567890 type: string maxLength: 36 amount: description: >- The monetary amount of this sales 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. Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45"). example: '1000.00' type: string priceRuleConflictStrategy: description: >- Specifies how to resolve price rule conflicts when adding or modifying this sales order line. example: base_price type: string enum: - base_price - zero inventorySiteId: description: >- The site location where inventory for the item associated with this sales order line is stored. example: 80000001-1234567890 type: string maxLength: 36 inventorySiteLocationId: description: >- The specific location (e.g., bin or shelf) within the inventory site where the item associated with this sales order line is stored. example: 80000001-1234567890 type: string maxLength: 36 serialNumber: description: >- The serial number of the item associated with this sales order line. This is used for tracking individual units of serialized inventory items. example: SN1234567890 type: string lotNumber: description: >- The lot number of the item associated with this sales order line. Used for tracking groups of inventory items that are purchased or manufactured together. example: LOT2023-001 type: string salesTaxCodeId: description: >- The sales-tax code for this sales 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. example: 80000001-1234567890 type: string maxLength: 36 isManuallyClosed: description: >- Indicates whether this sales order line has been manually marked as closed, even if it has not been invoiced. example: true type: boolean otherCustomField1: description: >- A built-in custom field for additional information specific to this sales order line. Unlike the user-defined fields in the `customFields` array, this is a standard QuickBooks field that exists for all sales 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. example: Special handling required type: string otherCustomField2: description: >- A second built-in custom field for additional information specific to this sales order line. Unlike the user-defined fields in the `customFields` array, this is a standard QuickBooks field that exists for all sales 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. example: Always ship with a spare type: string required: - id additionalProperties: false lineGroups: description: >- The sales order's line item groups, each representing a predefined set of related items. **IMPORTANT**: 1. Including this array in your update request will **REPLACE** all existing line item groups for the sales order with this array. To keep any existing line item groups, you must include them in this array even if they have not changed. **Any line item groups not included will be removed.** 2. To add a new line item group, include it here with the `id` field set to `-1`. 3. If you do not wish to modify any line item groups, omit this field entirely to keep them unchanged. minItems: 1 type: array items: type: object properties: id: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of an existing sales order line group you wish to retain or update. **IMPORTANT**: Set this field to `-1` for new sales order line groups you wish to add. example: 456DEF-1234567890 itemGroupId: description: >- The sales order line group's item group, representing a predefined set of items bundled because they are commonly purchased together or grouped for faster entry. example: 80000001-1234567890 type: string maxLength: 36 quantity: description: >- The quantity of the item group associated with this sales order line group. This field cannot be cleared. **NOTE**: Do not use this field if the associated item group is a discount item group. example: 5 type: number unitOfMeasure: description: >- The unit-of-measure used for the `quantity` in this sales order line group. Must be a valid unit within the item's available units of measure. example: Each type: string overrideUnitOfMeasureSetId: description: >- Specifies an alternative unit-of-measure set when updating this sales 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. example: 80000001-1234567890 type: string maxLength: 36 lines: description: >- The sales order line group's line items, each representing a single product or service ordered. **IMPORTANT**: 1. Including this array in your update request will **REPLACE** all existing line items for the sales order line group with this array. To keep any existing line items, you must include them in this array even if they have not changed. **Any line items not included will be removed.** 2. To add a new line item, include it here with the `id` field set to `-1`. 3. If you do not wish to modify any line items, omit this field entirely to keep them unchanged. minItems: 1 type: array items: type: object properties: id: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of an existing sales order line you wish to retain or update. **IMPORTANT**: Set this field to `-1` for new sales order lines you wish to add. example: 456DEF-1234567890 itemId: description: >- The item associated with this sales 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. example: 80000001-1234567890 type: string maxLength: 36 description: description: A description of this sales order line. example: Widget Model X100 - Blue type: string quantity: description: >- The quantity of the item associated with this sales order line. This field cannot be cleared. **NOTE**: Do not use this field if the associated item is a discount item. example: 5 type: number unitOfMeasure: description: >- The unit-of-measure used for the `quantity` in this sales order line. Must be a valid unit within the item's available units of measure. example: Each type: string overrideUnitOfMeasureSetId: description: >- Specifies an alternative unit-of-measure set when updating this sales 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. example: 80000001-1234567890 type: string maxLength: 36 rate: description: >- The price per unit for this sales 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. Decimal string format: up to 5 decimal places and up to 10 digits before the decimal point (for example, "123.45"). example: '10.00' type: string ratePercent: description: >- The price of this sales order line expressed as a percentage. Typically used for discount or markup items. example: '10.5' type: string priceLevelId: description: >- The price level applied to this sales order line. This overrides any price level set on the corresponding customer. The resulting sales order line will not show this price level, only the final `rate` calculated from it. example: 80000001-1234567890 type: string maxLength: 36 classId: description: >- The sales 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 sales order lines unless overridden here, at the transaction line level. example: 80000001-1234567890 type: string maxLength: 36 amount: description: >- The monetary amount of this sales 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. Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45"). example: '1000.00' type: string priceRuleConflictStrategy: description: >- Specifies how to resolve price rule conflicts when adding or modifying this sales order line. example: base_price type: string enum: - base_price - zero inventorySiteId: description: >- The site location where inventory for the item associated with this sales order line is stored. example: 80000001-1234567890 type: string maxLength: 36 inventorySiteLocationId: description: >- The specific location (e.g., bin or shelf) within the inventory site where the item associated with this sales order line is stored. example: 80000001-1234567890 type: string maxLength: 36 serialNumber: description: >- The serial number of the item associated with this sales order line. This is used for tracking individual units of serialized inventory items. example: SN1234567890 type: string lotNumber: description: >- The lot number of the item associated with this sales order line. Used for tracking groups of inventory items that are purchased or manufactured together. example: LOT2023-001 type: string salesTaxCodeId: description: >- The sales-tax code for this sales 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. example: 80000001-1234567890 type: string maxLength: 36 isManuallyClosed: description: >- Indicates whether this sales order line has been manually marked as closed, even if it has not been invoiced. example: true type: boolean otherCustomField1: description: >- A built-in custom field for additional information specific to this sales order line. Unlike the user-defined fields in the `customFields` array, this is a standard QuickBooks field that exists for all sales 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. example: Special handling required type: string otherCustomField2: description: >- A second built-in custom field for additional information specific to this sales order line. Unlike the user-defined fields in the `customFields` array, this is a standard QuickBooks field that exists for all sales 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. example: Always ship with a spare type: string required: - id additionalProperties: false required: - id additionalProperties: false salesChannelName: description: The type of the sales channel for this sales order. example: ecommerce type: string enum: - blank - ecommerce salesStoreName: description: The name of the sales store for this sales order. example: Store 1 type: string salesStoreType: description: The type of the sales store for this sales order. example: Retail type: string required: - revisionNumber additionalProperties: false responses: '200': description: Returns the updated sales order. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_sales_order' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const salesOrder = await conductor.qbd.salesOrders.update('123ABC-1234567890', { revisionNumber: '1721172183', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(salesOrder.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) sales_order = conductor.qbd.sales_orders.update( id="123ABC-1234567890", revision_number="1721172183", conductor_end_user_id="end_usr_1234567abcdefg", ) print(sales_order.id) delete: summary: Delete a sales order description: >- Permanently deletes a sales order. The deletion will fail if the sales order is currently in use or has any linked transactions that are in use. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the sales order to delete. example: 123ABC-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the sales order to delete. responses: '200': description: >- Returns a confirmation of the deletion with the ID of the deleted sales order. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: id: type: string description: >- The QuickBooks-assigned unique identifier of the deleted sales order. example: 123ABC-1234567890 objectType: description: >- The type of object. This value is always `"qbd_sales_order"`. example: qbd_sales_order type: string const: qbd_sales_order refNumber: anyOf: - type: string - type: 'null' description: >- The case-sensitive user-defined reference number of the deleted sales order. example: SO-1234 deleted: type: boolean description: Indicates whether the sales order was deleted. example: true required: - id - objectType - refNumber - deleted additionalProperties: false x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const salesOrder = await conductor.qbd.salesOrders.delete('123ABC-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(salesOrder.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) sales_order = conductor.qbd.sales_orders.delete( id="123ABC-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(sales_order.id) /quickbooks-desktop/sales-receipts: get: summary: List all sales receipts description: >- Returns a list of sales receipts. Use the `cursor` parameter to paginate through the results. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: query name: ids schema: description: >- Filter for specific sales receipts 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 type: array items: type: string description: >- Filter for specific sales receipts 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. - in: query name: refNumbers schema: description: >- Filter for specific sales receipts 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: - SALES RECEIPT-1234 type: array items: type: string description: >- Filter for specific sales receipts 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. - in: query name: limit schema: default: 150 description: >- 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. example: 150 type: integer minimum: 1 maximum: 150 description: >- 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. - in: query name: cursor schema: description: >- 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 type: string description: >- 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. - in: query name: updatedAfter schema: description: >- Filter for sales receipts 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. example: 2025-01-01T12:34:56.000Z type: string description: >- Filter for sales receipts 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. - in: query name: updatedBefore schema: description: >- Filter for sales receipts 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. example: 2025-02-01T12:34:56.000Z type: string description: >- Filter for sales receipts 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. - in: query name: transactionDateFrom schema: description: >- Filter for sales receipts 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-01` → `2025-01-01T00:00:00`). example: '2025-01-01' type: string format: date description: >- Filter for sales receipts 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-01` → `2025-01-01T00:00:00`). - in: query name: transactionDateTo schema: description: >- Filter for sales receipts 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-01` → `2025-01-01T23:59:59`). example: '2025-02-01' type: string format: date description: >- Filter for sales receipts 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-01` → `2025-01-01T23:59:59`). - in: query name: customerIds schema: description: Filter for sales receipts created for these customers. example: - 80000001-1234567890 type: array items: type: string description: Filter for sales receipts created for these customers. - in: query name: accountIds schema: description: Filter for sales receipts associated with these accounts. example: - 80000001-1234567890 type: array items: type: string description: Filter for sales receipts associated with these accounts. - in: query name: refNumberContains schema: description: >- Filter for sales receipts whose `refNumber` contains this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberStartsWith` or `refNumberEndsWith`. example: RECEIPT-1234 type: string description: >- Filter for sales receipts whose `refNumber` contains this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberStartsWith` or `refNumberEndsWith`. - in: query name: refNumberStartsWith schema: description: >- Filter for sales receipts whose `refNumber` starts with this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberContains` or `refNumberEndsWith`. example: RECEIPT type: string description: >- Filter for sales receipts whose `refNumber` starts with this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberContains` or `refNumberEndsWith`. - in: query name: refNumberEndsWith schema: description: >- Filter for sales receipts whose `refNumber` ends with this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberContains` or `refNumberStartsWith`. example: '1234' type: string description: >- Filter for sales receipts whose `refNumber` ends with this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberContains` or `refNumberStartsWith`. - in: query name: refNumberFrom schema: description: >- Filter for sales receipts 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: RECEIPT-0001 type: string description: >- Filter for sales receipts 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. - in: query name: refNumberTo schema: description: >- Filter for sales receipts 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: RECEIPT-9999 type: string description: >- Filter for sales receipts 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. - in: query name: currencyIds schema: description: Filter for sales receipts in these currencies. example: - 80000001-1234567890 type: array items: type: string description: Filter for sales receipts in these currencies. - in: query name: includeLineItems schema: description: Whether to include line items in the response. Defaults to `true`. example: true type: boolean default: true description: Whether to include line items in the response. Defaults to `true`. responses: '200': description: Returns a list of sales receipts. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: objectType: description: The type of object. This value is always `"list"`. example: list type: string const: list url: type: string description: The endpoint URL where this list can be accessed. example: /v1/quickbooks-desktop/sales-receipts data: type: array items: $ref: '#/components/schemas/qbd_sales_receipt' description: The array of sales receipts. nextCursor: anyOf: - type: string - type: 'null' description: >- The `nextCursor` is a pagination token returned in the response when you use the `limit` parameter in your request. To retrieve subsequent pages of results, include this token as the value of the `cursor` request parameter in your following API calls. **NOTE**: The `nextCursor` value remains constant throughout the pagination process for a specific list instance; continue to use the same `nextCursor` token in each request to fetch additional pages. example: 12345678-abcd-abcd-example-1234567890ab remainingCount: anyOf: - type: number - type: 'null' description: The number of objects remaining to be fetched. example: 10 hasMore: type: boolean description: Indicates whether there are more objects to be fetched. required: - objectType - url - data - nextCursor - remainingCount - hasMore additionalProperties: false x-codeSamples: - lang: JavaScript source: |- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); // Automatically fetches more pages as needed. for await (const salesReceipt of conductor.qbd.salesReceipts.list({ conductorEndUserId: 'end_usr_1234567abcdefg', })) { console.log(salesReceipt.id); } - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) page = conductor.qbd.sales_receipts.list( conductor_end_user_id="end_usr_1234567abcdefg", ) page = page.data[0] print(page.id) post: summary: Create a sales receipt description: >- Creates a sales receipt for a sale paid in full. If you include credit card transaction details, QuickBooks requires the payment method to reference a credit card type and automatically deposits the funds to Undeposited Funds rather than a specific bank account. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. requestBody: required: true content: application/json: schema: type: object properties: customerId: description: >- The customer or customer-job to which the payment for this sales receipt is credited. example: 80000001-1234567890 type: string maxLength: 36 classId: description: >- The sales receipt'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 sales receipt's line items unless overridden at the line item level. example: 80000001-1234567890 type: string maxLength: 36 documentTemplateId: description: >- The predefined template in QuickBooks that determines the layout and formatting for this sales receipt when printed or displayed. example: 80000001-1234567890 type: string maxLength: 36 transactionDate: type: string format: date description: >- The date of this sales receipt, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-01' refNumber: description: >- The case-sensitive user-defined reference number for this sales receipt, 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. When left blank in this create request, this field will be left blank in QuickBooks (i.e., it does *not* auto-increment). Maximum length: 11 characters. example: RECEIPT-1234 type: string maxLength: 11 billingAddress: description: The sales receipt's billing address. type: object properties: line1: description: >- The first line of the address (e.g., street, PO Box, or company name). Maximum length: 41 characters. example: Conductor Labs Inc. type: string maxLength: 41 line2: description: >- The second line of the address, if needed (e.g., apartment, suite, unit, or building). Maximum length: 41 characters. example: 540 Market St. type: string maxLength: 41 line3: description: |- The third line of the address, if needed. Maximum length: 41 characters. example: Suite 100 type: string maxLength: 41 line4: description: |- The fourth line of the address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 line5: description: |- The fifth line of the address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 city: description: >- The city, district, suburb, town, or village name of the address. Maximum length: 31 characters. example: San Francisco type: string maxLength: 31 state: description: >- The state, county, province, or region name of the address. Maximum length: 21 characters. example: CA type: string maxLength: 21 postalCode: description: |- The postal code or ZIP code of the address. Maximum length: 13 characters. example: '94110' type: string maxLength: 13 country: description: The country name of the address. example: United States type: string note: description: >- A note written at the bottom of the address in the form in which it appears, such as the invoice form. example: Conductor HQ type: string additionalProperties: false shippingAddress: description: The sales receipt's shipping address. type: object properties: line1: description: >- The first line of the address (e.g., street, PO Box, or company name). Maximum length: 41 characters. example: Conductor Labs Inc. type: string maxLength: 41 line2: description: >- The second line of the address, if needed (e.g., apartment, suite, unit, or building). Maximum length: 41 characters. example: 540 Market St. type: string maxLength: 41 line3: description: |- The third line of the address, if needed. Maximum length: 41 characters. example: Suite 100 type: string maxLength: 41 line4: description: |- The fourth line of the address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 line5: description: |- The fifth line of the address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 city: description: >- The city, district, suburb, town, or village name of the address. Maximum length: 31 characters. example: San Francisco type: string maxLength: 31 state: description: >- The state, county, province, or region name of the address. Maximum length: 21 characters. example: CA type: string maxLength: 21 postalCode: description: |- The postal code or ZIP code of the address. Maximum length: 13 characters. example: '94110' type: string maxLength: 13 country: description: The country name of the address. example: United States type: string note: description: >- A note written at the bottom of the address in the form in which it appears, such as the invoice form. example: Conductor HQ type: string additionalProperties: false isPending: description: Indicates whether this sales receipt has not been completed. example: false type: boolean checkNumber: description: The check number of a check received for this sales receipt. example: '1234567890' type: string paymentMethodId: description: >- The sales receipt's payment method (e.g., cash, check, credit card). **NOTE**: If this sales receipt contains credit card transaction data supplied from QuickBooks Merchant Services (QBMS) transaction responses, you must specify a credit card payment method (e.g., "Visa", "MasterCard", etc.). example: 80000001-1234567890 type: string maxLength: 36 dueDate: description: >- The date by which this sales receipt must be paid, in ISO 8601 format (YYYY-MM-DD). **NOTE**: For sales receipts, this field is often `null` because sales receipts are generally used for point-of-sale payments, where full payment is received at the time of purchase. example: '2024-10-31' type: string format: date salesRepresentativeId: description: >- The sales receipt's sales representative. Sales representatives can be employees, vendors, or other names in QuickBooks. example: 80000001-1234567890 type: string maxLength: 36 shippingDate: description: >- The date when the products or services for this sales receipt were shipped or are expected to be shipped, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-01' type: string format: date shippingMethodId: description: >- The shipping method used for this sales receipt, such as standard mail or overnight delivery. example: 80000001-1234567890 type: string maxLength: 36 shipmentOrigin: description: >- The origin location from where the product associated with this sales receipt 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. example: San Francisco, CA type: string maxLength: 13 salesTaxItemId: description: >- The sales-tax item used to calculate the actual tax amount for this sales receipt's transactions by applying a specific tax rate collected for a single tax agency. Unlike `salesTaxCode`, which only indicates general taxability, this field drives the actual tax calculation and reporting. For sales receipts, while using this field to specify a single tax item/group that applies uniformly is recommended, complex tax scenarios may require alternative approaches. In such cases, you can set this field to a 0% tax item (conventionally named "Tax Calculated On Invoice") and handle tax calculations through line items instead. When using line items for taxes, note that only individual tax items (not tax groups) can be used, subtotals can help apply a tax to multiple items but only the first tax line after a subtotal is calculated automatically (subsequent tax lines require manual amounts), and the rate column will always display the actual tax amount rather than the rate percentage. example: 80000001-1234567890 type: string maxLength: 36 memo: description: >- A memo or note for this sales receipt that appears in reports, but not on the sales receipt. example: Payment received at store location - cash type: string customerMessageId: description: The message to display to the customer on the sales receipt. example: 80000001-1234567890 type: string maxLength: 36 isQueuedForPrint: type: boolean description: >- Indicates whether this sales receipt is included in the queue of documents for QuickBooks to print. example: true isQueuedForEmail: description: >- Indicates whether this sales receipt is included in the queue of documents for QuickBooks to email to the customer. example: true type: boolean salesTaxCodeId: description: >- The sales-tax code for this sales receipt, determining whether it is taxable or non-taxable. This can be overridden at the transaction-line level. 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. example: 80000001-1234567890 type: string maxLength: 36 depositToAccountId: description: >- The account where the funds for this sales receipt will be or have been deposited. example: 80000001-1234567890 type: string maxLength: 36 creditCardTransaction: description: >- The credit card transaction data for this sales receipt's payment when using QuickBooks Merchant Services (QBMS). If specifying this field, you must also specify the `paymentMethod` field. type: object properties: request: description: >- The transaction request data originally supplied for this credit card transaction when using QuickBooks Merchant Services (QBMS). type: object properties: number: type: string description: >- The credit card number. Must be masked with lower case "x" and no dashes. example: xxxxxxxxxxxx1234 expirationMonth: description: The month when the credit card expires. example: 12 type: number expirationYear: description: The year when the credit card expires. example: 2024 type: number name: type: string description: The cardholder's name on the card. example: John Doe address: description: The card's billing address. example: 1234 Main St, Anytown, USA, 12345 type: string postalCode: description: The card's billing address ZIP or postal code. example: '12345' type: string commercialCardCode: description: >- The commercial card code identifies the type of business credit card being used (purchase, corporate, or business) for Visa and Mastercard transactions only. When provided, this code may qualify the transaction for lower processing fees compared to the standard rates that apply when no code is specified. example: corporate type: string transactionMode: description: >- Indicates whether this credit card transaction came from a card swipe (`card_present`) or not (`card_not_present`). example: card_not_present type: string enum: - card_not_present - card_present default: card_not_present transactionType: description: >- The QBMS transaction type from which the current transaction data originated. example: charge type: string enum: - authorization - capture - charge - refund - voice_authorization required: - number - expirationMonth - expirationYear - name additionalProperties: false response: description: >- The transaction response data for this credit card transaction when using QuickBooks Merchant Services (QBMS). type: object properties: statusCode: description: >- The status code returned in the original QBMS transaction response for this credit card transaction. example: 0 type: number statusMessage: type: string description: >- The status message returned in the original QBMS transaction response for this credit card transaction. example: Success creditCardTransactionId: type: string description: >- The ID returned from the credit card processor for this credit card transaction. example: '1234567890' merchantAccountNumber: type: string description: >- The QBMS account number of the merchant who is running this transaction using the customer's credit card. example: '1234567890' authorizationCode: description: >- The authorization code returned from the credit card processor to indicate that this charge will be paid by the card issuer. example: '1234567890' type: string avsStreetStatus: description: >- Indicates whether the street address supplied in the transaction request matches the customer's address on file at the card issuer. example: pass type: string enum: - fail - not_available - pass avsZipStatus: description: >- Indicates whether the customer postal ZIP code supplied in the transaction request matches the customer's postal code recognized at the card issuer. example: pass type: string enum: - fail - not_available - pass cardSecurityCodeMatch: description: >- Indicates whether the card security code supplied in the transaction request matches the card security code recognized for that credit card number at the card issuer. example: pass type: string enum: - fail - not_available - pass reconBatchId: description: >- An internal ID returned by QuickBooks Merchant Services (QBMS) from the transaction request, needed for the QuickBooks reconciliation feature. example: '1234567890' type: string paymentGroupingCode: description: >- An internal code returned by QuickBooks Merchant Services (QBMS) from the transaction request, needed for the QuickBooks reconciliation feature. example: 2 type: number paymentStatus: description: >- Indicates whether this credit card transaction is known to have been successfully processed by the card issuer. example: completed type: string enum: - completed - unknown transactionAuthorizedAt: type: string description: >- The date and time when the credit card processor authorized this credit card transaction. example: 2024-01-01T12:34:56.000Z transactionAuthorizationStamp: description: >- An internal value for this credit card transaction, needed for the QuickBooks reconciliation feature. example: 2 type: number clientTransactionId: description: >- A value returned from QBMS transactions for future use by the QuickBooks Reconciliation feature. example: '1234567890' type: string required: - statusCode - statusMessage - creditCardTransactionId - merchantAccountNumber - paymentStatus - transactionAuthorizedAt additionalProperties: false additionalProperties: false otherCustomField: description: >- A built-in custom field for additional information specific to this sales receipt. Unlike the user-defined fields in the `customFields` array, this is a standard QuickBooks field that exists for all sales receipts for convenience. Developers often use this field for tracking information that doesn't fit into other standard QuickBooks fields. Unlike `otherCustomField1` and `otherCustomField2`, which are line item fields, this exists at the transaction level. Hidden by default in the QuickBooks UI. example: Special handling required type: string exchangeRate: description: >- The market exchange rate between this sales receipt'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: 1.2345 type: number externalId: type: string format: uuid description: >- 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. **IMPORTANT**: This field must be formatted as a valid GUID; otherwise, QuickBooks will return an error. example: 12345678-abcd-1234-abcd-1234567890ab lines: description: >- The sales receipt's line items, each representing a single product or service sold. **IMPORTANT**: You must specify `lines`, `lineGroups`, or both when creating a sales receipt. minItems: 1 type: array items: type: object properties: itemId: description: >- The item associated with this sales receipt 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. example: 80000001-1234567890 type: string maxLength: 36 description: description: A description of this sales receipt line. example: New office chair type: string quantity: description: >- The quantity of the item associated with this sales receipt line. This field cannot be cleared. **NOTE**: Do not use this field if the associated item is a discount item. example: 5 type: number unitOfMeasure: description: >- The unit-of-measure used for the `quantity` in this sales receipt line. Must be a valid unit within the item's available units of measure. example: Each type: string rate: description: >- The price per unit for this sales receipt 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. Decimal string format: up to 5 decimal places and up to 10 digits before the decimal point (for example, "123.45"). example: '10.00' type: string ratePercent: description: >- The price of this sales receipt line expressed as a percentage. Typically used for discount or markup items. example: '10.5' type: string priceLevelId: description: >- The price level applied to this sales receipt line. This overrides any price level set on the corresponding customer. The resulting sales receipt line will not show this price level, only the final `rate` calculated from it. example: 80000001-1234567890 type: string maxLength: 36 classId: description: >- The sales receipt 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 sales receipt lines unless overridden here, at the transaction line level. example: 80000001-1234567890 type: string maxLength: 36 amount: description: >- The monetary amount of this sales receipt 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. Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45"). example: '1000.00' type: string priceRuleConflictStrategy: description: >- Specifies how to resolve price rule conflicts when adding or modifying this sales receipt line. example: base_price type: string enum: - base_price - zero inventorySiteId: description: >- The site location where inventory for the item associated with this sales receipt line is stored. example: 80000001-1234567890 type: string maxLength: 36 inventorySiteLocationId: description: >- The specific location (e.g., bin or shelf) within the inventory site where the item associated with this sales receipt line is stored. example: 80000001-1234567890 type: string maxLength: 36 serialNumber: description: >- The serial number of the item associated with this sales receipt line. This is used for tracking individual units of serialized inventory items. example: SN1234567890 type: string lotNumber: description: >- The lot number of the item associated with this sales receipt line. Used for tracking groups of inventory items that are purchased or manufactured together. example: LOT2023-001 type: string serviceDate: description: >- The date on which the service for this sales receipt line was or will be performed, in ISO 8601 format (YYYY-MM-DD). This is particularly relevant for service items. example: '2024-03-15' type: string format: date salesTaxCodeId: description: >- The sales-tax code for this sales receipt 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. example: 80000001-1234567890 type: string maxLength: 36 overrideItemAccountId: description: >- The account to use for this sales receipt line, overriding the default account associated with the item. example: 80000001-1234567890 type: string maxLength: 36 otherCustomField1: description: >- A built-in custom field for additional information specific to this sales receipt line. Unlike the user-defined fields in the `customFields` array, this is a standard QuickBooks field that exists for all sales receipt 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. example: Special handling required type: string otherCustomField2: description: >- A second built-in custom field for additional information specific to this sales receipt line. Unlike the user-defined fields in the `customFields` array, this is a standard QuickBooks field that exists for all sales receipt 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. example: Always ship with a spare type: string creditCardTransaction: description: >- The credit card transaction data for this sales receipt line's payment when using QuickBooks Merchant Services (QBMS). If specifying this field, you must also specify the `paymentMethod` field. type: object properties: request: description: >- The transaction request data originally supplied for this credit card transaction when using QuickBooks Merchant Services (QBMS). type: object properties: number: type: string description: >- The credit card number. Must be masked with lower case "x" and no dashes. example: xxxxxxxxxxxx1234 expirationMonth: description: The month when the credit card expires. example: 12 type: number expirationYear: description: The year when the credit card expires. example: 2024 type: number name: type: string description: The cardholder's name on the card. example: John Doe address: description: The card's billing address. example: 1234 Main St, Anytown, USA, 12345 type: string postalCode: description: The card's billing address ZIP or postal code. example: '12345' type: string commercialCardCode: description: >- The commercial card code identifies the type of business credit card being used (purchase, corporate, or business) for Visa and Mastercard transactions only. When provided, this code may qualify the transaction for lower processing fees compared to the standard rates that apply when no code is specified. example: corporate type: string transactionMode: description: >- Indicates whether this credit card transaction came from a card swipe (`card_present`) or not (`card_not_present`). example: card_not_present type: string enum: - card_not_present - card_present default: card_not_present transactionType: description: >- The QBMS transaction type from which the current transaction data originated. example: charge type: string enum: - authorization - capture - charge - refund - voice_authorization required: - number - expirationMonth - expirationYear - name additionalProperties: false response: description: >- The transaction response data for this credit card transaction when using QuickBooks Merchant Services (QBMS). type: object properties: statusCode: description: >- The status code returned in the original QBMS transaction response for this credit card transaction. example: 0 type: number statusMessage: type: string description: >- The status message returned in the original QBMS transaction response for this credit card transaction. example: Success creditCardTransactionId: type: string description: >- The ID returned from the credit card processor for this credit card transaction. example: '1234567890' merchantAccountNumber: type: string description: >- The QBMS account number of the merchant who is running this transaction using the customer's credit card. example: '1234567890' authorizationCode: description: >- The authorization code returned from the credit card processor to indicate that this charge will be paid by the card issuer. example: '1234567890' type: string avsStreetStatus: description: >- Indicates whether the street address supplied in the transaction request matches the customer's address on file at the card issuer. example: pass type: string enum: - fail - not_available - pass avsZipStatus: description: >- Indicates whether the customer postal ZIP code supplied in the transaction request matches the customer's postal code recognized at the card issuer. example: pass type: string enum: - fail - not_available - pass cardSecurityCodeMatch: description: >- Indicates whether the card security code supplied in the transaction request matches the card security code recognized for that credit card number at the card issuer. example: pass type: string enum: - fail - not_available - pass reconBatchId: description: >- An internal ID returned by QuickBooks Merchant Services (QBMS) from the transaction request, needed for the QuickBooks reconciliation feature. example: '1234567890' type: string paymentGroupingCode: description: >- An internal code returned by QuickBooks Merchant Services (QBMS) from the transaction request, needed for the QuickBooks reconciliation feature. example: 2 type: number paymentStatus: description: >- Indicates whether this credit card transaction is known to have been successfully processed by the card issuer. example: completed type: string enum: - completed - unknown transactionAuthorizedAt: type: string description: >- The date and time when the credit card processor authorized this credit card transaction. example: 2024-01-01T12:34:56.000Z transactionAuthorizationStamp: description: >- An internal value for this credit card transaction, needed for the QuickBooks reconciliation feature. example: 2 type: number clientTransactionId: description: >- A value returned from QBMS transactions for future use by the QuickBooks Reconciliation feature. example: '1234567890' type: string required: - statusCode - statusMessage - creditCardTransactionId - merchantAccountNumber - paymentStatus - transactionAuthorizedAt additionalProperties: false additionalProperties: false customFields: description: >- The custom fields for the sales receipt line object, added as user-defined data extensions, not included in the standard QuickBooks object. minItems: 1 type: array items: type: object properties: ownerId: type: string description: >- 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. example: '0' name: type: string description: >- 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. example: Customer Rating value: type: string description: >- The value of this custom field. The maximum length depends on the field's data type. example: Premium required: - ownerId - name - value additionalProperties: false additionalProperties: false lineGroups: description: >- The sales receipt's line item groups, each representing a predefined set of related items. **IMPORTANT**: You must specify `lines`, `lineGroups`, or both when creating a sales receipt. minItems: 1 type: array items: type: object properties: itemGroupId: description: >- The sales receipt line group's item group, representing a predefined set of items bundled because they are commonly purchased together or grouped for faster entry. example: 80000001-1234567890 type: string maxLength: 36 quantity: description: >- The quantity of the item group associated with this sales receipt line group. This field cannot be cleared. **NOTE**: Do not use this field if the associated item group is a discount item group. example: 5 type: number unitOfMeasure: description: >- The unit-of-measure used for the `quantity` in this sales receipt line group. Must be a valid unit within the item's available units of measure. example: Each type: string serviceDate: description: >- The date on which the service for this sales receipt line group was or will be performed, in ISO 8601 format (YYYY-MM-DD). This is particularly relevant for service items. example: '2024-03-15' type: string format: date inventorySiteId: description: >- The site location where inventory for the item group associated with this sales receipt line group is stored. example: 80000001-1234567890 type: string maxLength: 36 inventorySiteLocationId: description: >- The specific location (e.g., bin or shelf) within the inventory site where the item group associated with this sales receipt line group is stored. example: 80000001-1234567890 type: string maxLength: 36 customFields: description: >- The custom fields for the sales receipt line group object, added as user-defined data extensions, not included in the standard QuickBooks object. minItems: 1 type: array items: type: object properties: ownerId: type: string description: >- 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. example: '0' name: type: string description: >- 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. example: Customer Rating value: type: string description: >- The value of this custom field. The maximum length depends on the field's data type. example: Premium required: - ownerId - name - value additionalProperties: false required: - itemGroupId additionalProperties: false required: - transactionDate additionalProperties: false responses: '200': description: Returns the newly created sales receipt. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_sales_receipt' x-codeSamples: - lang: JavaScript source: |- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const salesReceipt = await conductor.qbd.salesReceipts.create({ transactionDate: '2024-10-01', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(salesReceipt.id); - lang: Python source: |- import os from datetime import date from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) sales_receipt = conductor.qbd.sales_receipts.create( transaction_date=date.fromisoformat("2024-10-01"), conductor_end_user_id="end_usr_1234567abcdefg", ) print(sales_receipt.id) /quickbooks-desktop/sales-receipts/{id}: get: summary: Retrieve a sales receipt description: >- Retrieves a sales receipt by ID. **IMPORTANT:** If you need to fetch multiple specific sales receipts 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. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the sales receipt to retrieve. example: 123ABC-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the sales receipt to retrieve. responses: '200': description: Returns the specified sales receipt. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_sales_receipt' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const salesReceipt = await conductor.qbd.salesReceipts.retrieve('123ABC-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(salesReceipt.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) sales_receipt = conductor.qbd.sales_receipts.retrieve( id="123ABC-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(sales_receipt.id) post: summary: Update a sales receipt description: >- Updates an existing sales receipt. Credit card payments still have to use a credit-card payment method and remain deposited to Undeposited Funds, so don’t switch the deposit account in those scenarios. **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. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the sales receipt to update. example: 123ABC-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the sales receipt to update. requestBody: required: true content: application/json: schema: type: object properties: revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of the sales receipt 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. example: '1721172183' customerId: description: >- The customer or customer-job to which the payment for this sales receipt is credited. example: 80000001-1234567890 type: string maxLength: 36 classId: description: >- The sales receipt'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 sales receipt's line items unless overridden at the line item level. example: 80000001-1234567890 type: string maxLength: 36 documentTemplateId: description: >- The predefined template in QuickBooks that determines the layout and formatting for this sales receipt when printed or displayed. example: 80000001-1234567890 type: string maxLength: 36 transactionDate: description: >- The date of this sales receipt, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-01' type: string format: date refNumber: description: >- The case-sensitive user-defined reference number for this sales receipt, 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. example: RECEIPT-1234 type: string maxLength: 11 billingAddress: description: The sales receipt's billing address. type: object properties: line1: description: >- The first line of the address (e.g., street, PO Box, or company name). Maximum length: 41 characters. example: Conductor Labs Inc. type: string maxLength: 41 line2: description: >- The second line of the address, if needed (e.g., apartment, suite, unit, or building). Maximum length: 41 characters. example: 540 Market St. type: string maxLength: 41 line3: description: |- The third line of the address, if needed. Maximum length: 41 characters. example: Suite 100 type: string maxLength: 41 line4: description: |- The fourth line of the address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 line5: description: |- The fifth line of the address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 city: description: >- The city, district, suburb, town, or village name of the address. Maximum length: 31 characters. example: San Francisco type: string maxLength: 31 state: description: >- The state, county, province, or region name of the address. Maximum length: 21 characters. example: CA type: string maxLength: 21 postalCode: description: |- The postal code or ZIP code of the address. Maximum length: 13 characters. example: '94110' type: string maxLength: 13 country: description: The country name of the address. example: United States type: string note: description: >- A note written at the bottom of the address in the form in which it appears, such as the invoice form. example: Conductor HQ type: string additionalProperties: false shippingAddress: description: The sales receipt's shipping address. type: object properties: line1: description: >- The first line of the address (e.g., street, PO Box, or company name). Maximum length: 41 characters. example: Conductor Labs Inc. type: string maxLength: 41 line2: description: >- The second line of the address, if needed (e.g., apartment, suite, unit, or building). Maximum length: 41 characters. example: 540 Market St. type: string maxLength: 41 line3: description: |- The third line of the address, if needed. Maximum length: 41 characters. example: Suite 100 type: string maxLength: 41 line4: description: |- The fourth line of the address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 line5: description: |- The fifth line of the address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 city: description: >- The city, district, suburb, town, or village name of the address. Maximum length: 31 characters. example: San Francisco type: string maxLength: 31 state: description: >- The state, county, province, or region name of the address. Maximum length: 21 characters. example: CA type: string maxLength: 21 postalCode: description: |- The postal code or ZIP code of the address. Maximum length: 13 characters. example: '94110' type: string maxLength: 13 country: description: The country name of the address. example: United States type: string note: description: >- A note written at the bottom of the address in the form in which it appears, such as the invoice form. example: Conductor HQ type: string additionalProperties: false isPending: description: Indicates whether this sales receipt has not been completed. example: false type: boolean checkNumber: description: The check number of a check received for this sales receipt. example: '1234567890' type: string paymentMethodId: description: >- The sales receipt's payment method (e.g., cash, check, credit card). example: 80000001-1234567890 type: string maxLength: 36 dueDate: description: >- The date by which this sales receipt must be paid, in ISO 8601 format (YYYY-MM-DD). **NOTE**: For sales receipts, this field is often `null` because sales receipts are generally used for point-of-sale payments, where full payment is received at the time of purchase. example: '2024-10-31' type: string format: date salesRepresentativeId: description: >- The sales receipt's sales representative. Sales representatives can be employees, vendors, or other names in QuickBooks. example: 80000001-1234567890 type: string maxLength: 36 shippingDate: description: >- The date when the products or services for this sales receipt were shipped or are expected to be shipped, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-01' type: string format: date shippingMethodId: description: >- The shipping method used for this sales receipt, such as standard mail or overnight delivery. example: 80000001-1234567890 type: string maxLength: 36 shipmentOrigin: description: >- The origin location from where the product associated with this sales receipt 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. example: San Francisco, CA type: string maxLength: 13 salesTaxItemId: description: >- The sales-tax item used to calculate the actual tax amount for this sales receipt's transactions by applying a specific tax rate collected for a single tax agency. Unlike `salesTaxCode`, which only indicates general taxability, this field drives the actual tax calculation and reporting. For sales receipts, while using this field to specify a single tax item/group that applies uniformly is recommended, complex tax scenarios may require alternative approaches. In such cases, you can set this field to a 0% tax item (conventionally named "Tax Calculated On Invoice") and handle tax calculations through line items instead. When using line items for taxes, note that only individual tax items (not tax groups) can be used, subtotals can help apply a tax to multiple items but only the first tax line after a subtotal is calculated automatically (subsequent tax lines require manual amounts), and the rate column will always display the actual tax amount rather than the rate percentage. example: 80000001-1234567890 type: string maxLength: 36 memo: description: >- A memo or note for this sales receipt that appears in reports, but not on the sales receipt. example: Payment received at store location - cash type: string customerMessageId: description: The message to display to the customer on the sales receipt. example: 80000001-1234567890 type: string maxLength: 36 isQueuedForPrint: type: boolean description: >- Indicates whether this sales receipt is included in the queue of documents for QuickBooks to print. example: true isQueuedForEmail: description: >- Indicates whether this sales receipt is included in the queue of documents for QuickBooks to email to the customer. example: true type: boolean salesTaxCodeId: description: >- The sales-tax code for this sales receipt, determining whether it is taxable or non-taxable. This can be overridden at the transaction-line level. 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. example: 80000001-1234567890 type: string maxLength: 36 depositToAccountId: description: >- The account where the funds for this sales receipt will be or have been deposited. example: 80000001-1234567890 type: string maxLength: 36 otherCustomField: description: >- A built-in custom field for additional information specific to this sales receipt. Unlike the user-defined fields in the `customFields` array, this is a standard QuickBooks field that exists for all sales receipts for convenience. Developers often use this field for tracking information that doesn't fit into other standard QuickBooks fields. Unlike `otherCustomField1` and `otherCustomField2`, which are line item fields, this exists at the transaction level. Hidden by default in the QuickBooks UI. example: Special handling required type: string exchangeRate: description: >- The market exchange rate between this sales receipt'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: 1.2345 type: number lines: description: >- The sales receipt's line items, each representing a single product or service sold. **IMPORTANT**: 1. Including this array in your update request will **REPLACE** all existing line items for the sales receipt with this array. To keep any existing line items, you must include them in this array even if they have not changed. **Any line items not included will be removed.** 2. To add a new line item, include it here with the `id` field set to `-1`. 3. If you do not wish to modify any line items, omit this field entirely to keep them unchanged. minItems: 1 type: array items: type: object properties: id: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of an existing sales receipt line you wish to retain or update. **IMPORTANT**: Set this field to `-1` for new sales receipt lines you wish to add. example: 456DEF-1234567890 itemId: description: >- The item associated with this sales receipt 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. example: 80000001-1234567890 type: string maxLength: 36 description: description: A description of this sales receipt line. example: New office chair type: string quantity: description: >- The quantity of the item associated with this sales receipt line. This field cannot be cleared. **NOTE**: Do not use this field if the associated item is a discount item. example: 5 type: number unitOfMeasure: description: >- The unit-of-measure used for the `quantity` in this sales receipt line. Must be a valid unit within the item's available units of measure. example: Each type: string overrideUnitOfMeasureSetId: description: >- Specifies an alternative unit-of-measure set when updating this sales receipt 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. example: 80000001-1234567890 type: string maxLength: 36 rate: description: >- The price per unit for this sales receipt 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. Decimal string format: up to 5 decimal places and up to 10 digits before the decimal point (for example, "123.45"). example: '10.00' type: string ratePercent: description: >- The price of this sales receipt line expressed as a percentage. Typically used for discount or markup items. example: '10.5' type: string priceLevelId: description: >- The price level applied to this sales receipt line. This overrides any price level set on the corresponding customer. The resulting sales receipt line will not show this price level, only the final `rate` calculated from it. example: 80000001-1234567890 type: string maxLength: 36 classId: description: >- The sales receipt 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 sales receipt lines unless overridden here, at the transaction line level. example: 80000001-1234567890 type: string maxLength: 36 amount: description: >- The monetary amount of this sales receipt 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. Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45"). example: '1000.00' type: string priceRuleConflictStrategy: description: >- Specifies how to resolve price rule conflicts when adding or modifying this sales receipt line. example: base_price type: string enum: - base_price - zero inventorySiteId: description: >- The site location where inventory for the item associated with this sales receipt line is stored. example: 80000001-1234567890 type: string maxLength: 36 inventorySiteLocationId: description: >- The specific location (e.g., bin or shelf) within the inventory site where the item associated with this sales receipt line is stored. example: 80000001-1234567890 type: string maxLength: 36 serialNumber: description: >- The serial number of the item associated with this sales receipt line. This is used for tracking individual units of serialized inventory items. example: SN1234567890 type: string lotNumber: description: >- The lot number of the item associated with this sales receipt line. Used for tracking groups of inventory items that are purchased or manufactured together. example: LOT2023-001 type: string serviceDate: description: >- The date on which the service for this sales receipt line was or will be performed, in ISO 8601 format (YYYY-MM-DD). This is particularly relevant for service items. example: '2024-03-15' type: string format: date salesTaxCodeId: description: >- The sales-tax code for this sales receipt 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. example: 80000001-1234567890 type: string maxLength: 36 overrideItemAccountId: description: >- The account to use for this sales receipt line, overriding the default account associated with the item. example: 80000001-1234567890 type: string maxLength: 36 otherCustomField1: description: >- A built-in custom field for additional information specific to this sales receipt line. Unlike the user-defined fields in the `customFields` array, this is a standard QuickBooks field that exists for all sales receipt 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. example: Special handling required type: string otherCustomField2: description: >- A second built-in custom field for additional information specific to this sales receipt line. Unlike the user-defined fields in the `customFields` array, this is a standard QuickBooks field that exists for all sales receipt 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. example: Always ship with a spare type: string required: - id additionalProperties: false lineGroups: description: >- The sales receipt's line item groups, each representing a predefined set of related items. **IMPORTANT**: 1. Including this array in your update request will **REPLACE** all existing line item groups for the sales receipt with this array. To keep any existing line item groups, you must include them in this array even if they have not changed. **Any line item groups not included will be removed.** 2. To add a new line item group, include it here with the `id` field set to `-1`. 3. If you do not wish to modify any line item groups, omit this field entirely to keep them unchanged. minItems: 1 type: array items: type: object properties: id: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of an existing sales receipt line group you wish to retain or update. **IMPORTANT**: Set this field to `-1` for new sales receipt line groups you wish to add. example: 456DEF-1234567890 itemGroupId: description: >- The sales receipt line group's item group, representing a predefined set of items bundled because they are commonly purchased together or grouped for faster entry. example: 80000001-1234567890 type: string maxLength: 36 quantity: description: >- The quantity of the item group associated with this sales receipt line group. This field cannot be cleared. **NOTE**: Do not use this field if the associated item group is a discount item group. example: 5 type: number unitOfMeasure: description: >- The unit-of-measure used for the `quantity` in this sales receipt line group. Must be a valid unit within the item's available units of measure. example: Each type: string overrideUnitOfMeasureSetId: description: >- Specifies an alternative unit-of-measure set when updating this sales receipt 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. example: 80000001-1234567890 type: string maxLength: 36 lines: description: >- The sales receipt line group's line items, each representing a single product or service sold. **IMPORTANT**: 1. Including this array in your update request will **REPLACE** all existing line items for the sales receipt line group with this array. To keep any existing line items, you must include them in this array even if they have not changed. **Any line items not included will be removed.** 2. To add a new line item, include it here with the `id` field set to `-1`. 3. If you do not wish to modify any line items, omit this field entirely to keep them unchanged. minItems: 1 type: array items: type: object properties: id: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of an existing sales receipt line you wish to retain or update. **IMPORTANT**: Set this field to `-1` for new sales receipt lines you wish to add. example: 456DEF-1234567890 itemId: description: >- The item associated with this sales receipt 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. example: 80000001-1234567890 type: string maxLength: 36 description: description: A description of this sales receipt line. example: New office chair type: string quantity: description: >- The quantity of the item associated with this sales receipt line. This field cannot be cleared. **NOTE**: Do not use this field if the associated item is a discount item. example: 5 type: number unitOfMeasure: description: >- The unit-of-measure used for the `quantity` in this sales receipt line. Must be a valid unit within the item's available units of measure. example: Each type: string overrideUnitOfMeasureSetId: description: >- Specifies an alternative unit-of-measure set when updating this sales receipt 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. example: 80000001-1234567890 type: string maxLength: 36 rate: description: >- The price per unit for this sales receipt 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. Decimal string format: up to 5 decimal places and up to 10 digits before the decimal point (for example, "123.45"). example: '10.00' type: string ratePercent: description: >- The price of this sales receipt line expressed as a percentage. Typically used for discount or markup items. example: '10.5' type: string priceLevelId: description: >- The price level applied to this sales receipt line. This overrides any price level set on the corresponding customer. The resulting sales receipt line will not show this price level, only the final `rate` calculated from it. example: 80000001-1234567890 type: string maxLength: 36 classId: description: >- The sales receipt 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 sales receipt lines unless overridden here, at the transaction line level. example: 80000001-1234567890 type: string maxLength: 36 amount: description: >- The monetary amount of this sales receipt 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. Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45"). example: '1000.00' type: string priceRuleConflictStrategy: description: >- Specifies how to resolve price rule conflicts when adding or modifying this sales receipt line. example: base_price type: string enum: - base_price - zero inventorySiteId: description: >- The site location where inventory for the item associated with this sales receipt line is stored. example: 80000001-1234567890 type: string maxLength: 36 inventorySiteLocationId: description: >- The specific location (e.g., bin or shelf) within the inventory site where the item associated with this sales receipt line is stored. example: 80000001-1234567890 type: string maxLength: 36 serialNumber: description: >- The serial number of the item associated with this sales receipt line. This is used for tracking individual units of serialized inventory items. example: SN1234567890 type: string lotNumber: description: >- The lot number of the item associated with this sales receipt line. Used for tracking groups of inventory items that are purchased or manufactured together. example: LOT2023-001 type: string serviceDate: description: >- The date on which the service for this sales receipt line was or will be performed, in ISO 8601 format (YYYY-MM-DD). This is particularly relevant for service items. example: '2024-03-15' type: string format: date salesTaxCodeId: description: >- The sales-tax code for this sales receipt 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. example: 80000001-1234567890 type: string maxLength: 36 overrideItemAccountId: description: >- The account to use for this sales receipt line, overriding the default account associated with the item. example: 80000001-1234567890 type: string maxLength: 36 otherCustomField1: description: >- A built-in custom field for additional information specific to this sales receipt line. Unlike the user-defined fields in the `customFields` array, this is a standard QuickBooks field that exists for all sales receipt 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. example: Special handling required type: string otherCustomField2: description: >- A second built-in custom field for additional information specific to this sales receipt line. Unlike the user-defined fields in the `customFields` array, this is a standard QuickBooks field that exists for all sales receipt 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. example: Always ship with a spare type: string required: - id additionalProperties: false required: - id additionalProperties: false required: - revisionNumber additionalProperties: false responses: '200': description: Returns the updated sales receipt. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_sales_receipt' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const salesReceipt = await conductor.qbd.salesReceipts.update('123ABC-1234567890', { revisionNumber: '1721172183', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(salesReceipt.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) sales_receipt = conductor.qbd.sales_receipts.update( id="123ABC-1234567890", revision_number="1721172183", conductor_end_user_id="end_usr_1234567abcdefg", ) print(sales_receipt.id) delete: summary: Delete a sales receipt description: >- Permanently deletes a sales receipt. The deletion will fail if the sales receipt is currently in use or has any linked transactions that are in use. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the sales receipt to delete. example: 123ABC-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the sales receipt to delete. responses: '200': description: >- Returns a confirmation of the deletion with the ID of the deleted sales receipt. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: id: type: string description: >- The QuickBooks-assigned unique identifier of the deleted sales receipt. example: 123ABC-1234567890 objectType: description: >- The type of object. This value is always `"qbd_sales_receipt"`. example: qbd_sales_receipt type: string const: qbd_sales_receipt refNumber: anyOf: - type: string - type: 'null' description: >- The case-sensitive user-defined reference number of the deleted sales receipt. example: RECEIPT-1234 deleted: type: boolean description: Indicates whether the sales receipt was deleted. example: true required: - id - objectType - refNumber - deleted additionalProperties: false x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const salesReceipt = await conductor.qbd.salesReceipts.delete('123ABC-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(salesReceipt.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) sales_receipt = conductor.qbd.sales_receipts.delete( id="123ABC-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(sales_receipt.id) /quickbooks-desktop/sales-receipts/{id}/void: post: summary: Void a sales receipt description: >- Voids a sales receipt by setting its amount to zero while keeping a record of it in QuickBooks. The void will fail if the sales receipt is currently in use or has any linked transactions that are in use. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the sales receipt to void. example: 123ABC-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the sales receipt to void. responses: '200': description: >- Returns a confirmation of the void with the ID of the voided sales receipt. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: id: type: string description: >- The QuickBooks-assigned unique identifier of the voided sales receipt. example: 123ABC-1234567890 objectType: description: >- The type of object. This value is always `"qbd_sales_receipt"`. example: qbd_sales_receipt type: string const: qbd_sales_receipt createdAt: anyOf: - type: string - type: 'null' description: >- The date and time when this sales receipt 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. example: 2025-01-01T12:34:56.000Z updatedAt: anyOf: - type: string - type: 'null' description: >- The date and time when this sales receipt 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. example: 2025-02-01T12:34:56.000Z refNumber: anyOf: - type: string - type: 'null' description: >- The case-sensitive user-defined reference number of the voided sales receipt. example: RECEIPT-1234 voided: type: boolean description: Indicates whether the sales receipt was voided. example: true required: - id - objectType - createdAt - updatedAt - refNumber - voided additionalProperties: false x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const response = await conductor.qbd.salesReceipts.void('123ABC-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(response.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) response = conductor.qbd.sales_receipts.void( id="123ABC-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(response.id) /quickbooks-desktop/sales-representatives: get: summary: List all sales representatives description: >- Returns a list of sales representatives. **NOTE:** QuickBooks Desktop does not support pagination for sales representatives; hence, there is no `cursor` parameter. Users typically have few sales representatives. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: query name: ids schema: description: >- Filter for specific sales representatives 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: - 80000001-1234567890 type: array items: type: string description: >- Filter for specific sales representatives 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. - in: query name: names schema: description: >- Filter for specific sales representatives by their name(s), case-insensitive. Like `id`, `name` is a unique identifier for a sales representative. **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: - John Doe type: array items: type: string description: >- Filter for specific sales representatives by their name(s), case-insensitive. Like `id`, `name` is a unique identifier for a sales representative. **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. - in: query name: limit schema: description: >- The maximum number of objects to return. **IMPORTANT**: QuickBooks Desktop does not support cursor-based pagination for sales representatives. 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 sales representatives without limit, unlike paginated endpoints which default to 150 records. This is acceptable because sales representatives typically have low record counts. example: 10 type: integer minimum: 1 description: >- The maximum number of objects to return. **IMPORTANT**: QuickBooks Desktop does not support cursor-based pagination for sales representatives. 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 sales representatives without limit, unlike paginated endpoints which default to 150 records. This is acceptable because sales representatives typically have low record counts. - in: query name: status schema: description: >- Filter for sales representatives that are active, inactive, or both. example: active type: string enum: - active - all - inactive default: active description: Filter for sales representatives that are active, inactive, or both. - in: query name: updatedAfter schema: description: >- Filter for sales representatives 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. example: 2025-01-01T12:34:56.000Z type: string description: >- Filter for sales representatives 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. - in: query name: updatedBefore schema: description: >- Filter for sales representatives 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. example: 2025-02-01T12:34:56.000Z type: string description: >- Filter for sales representatives 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. - in: query name: nameContains schema: description: >- Filter for sales representatives whose `name` contains this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameStartsWith` or `nameEndsWith`. example: ABC type: string description: >- Filter for sales representatives whose `name` contains this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameStartsWith` or `nameEndsWith`. - in: query name: nameStartsWith schema: description: >- Filter for sales representatives whose `name` starts with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameEndsWith`. example: ABC type: string description: >- Filter for sales representatives whose `name` starts with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameEndsWith`. - in: query name: nameEndsWith schema: description: >- Filter for sales representatives whose `name` ends with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameStartsWith`. example: ABC type: string description: >- Filter for sales representatives whose `name` ends with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameStartsWith`. - in: query name: nameFrom schema: description: >- Filter for sales representatives whose `name` is alphabetically greater than or equal to this value. example: A type: string description: >- Filter for sales representatives whose `name` is alphabetically greater than or equal to this value. - in: query name: nameTo schema: description: >- Filter for sales representatives whose `name` is alphabetically less than or equal to this value. example: Z type: string description: >- Filter for sales representatives whose `name` is alphabetically less than or equal to this value. responses: '200': description: Returns a list of sales representatives. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: objectType: description: The type of object. This value is always `"list"`. example: list type: string const: list url: type: string description: The endpoint URL where this list can be accessed. example: /v1/quickbooks-desktop/sales-representatives data: type: array items: $ref: '#/components/schemas/qbd_sales_representative' description: The array of sales representatives. required: - objectType - url - data additionalProperties: false x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const salesRepresentatives = await conductor.qbd.salesRepresentatives.list({ conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(salesRepresentatives.data); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) sales_representatives = conductor.qbd.sales_representatives.list( conductor_end_user_id="end_usr_1234567abcdefg", ) print(sales_representatives.data) post: summary: Create a sales representative description: >- Creates a sales representative that references an existing employee, vendor, or other-name record so it can be assigned on sales forms. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. requestBody: required: true content: application/json: schema: type: object properties: initial: type: string maxLength: 5 description: |- The initials of this sales representative's name. Maximum length: 5 characters. example: JD isActive: description: >- Indicates whether this sales representative is active. Inactive objects are typically hidden from views and reports in QuickBooks. Defaults to `true`. example: true default: true type: boolean entityId: description: >- The sales representative's corresponding person entity in QuickBooks, stored as either an employee, vendor, or other-name entry. example: 80000001-1234567890 type: string maxLength: 36 required: - initial - entityId additionalProperties: false responses: '200': description: Returns the newly created sales representative. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_sales_representative' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const salesRepresentative = await conductor.qbd.salesRepresentatives.create({ entityId: '80000001-1234567890', initial: 'JD', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(salesRepresentative.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) sales_representative = conductor.qbd.sales_representatives.create( entity_id="80000001-1234567890", initial="JD", conductor_end_user_id="end_usr_1234567abcdefg", ) print(sales_representative.id) /quickbooks-desktop/sales-representatives/{id}: get: summary: Retrieve a sales representative description: >- Retrieves a sales representative by ID. **IMPORTANT:** If you need to fetch multiple specific sales representatives 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. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the sales representative to retrieve. example: 80000001-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the sales representative to retrieve. responses: '200': description: Returns the specified sales representative. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_sales_representative' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const salesRepresentative = await conductor.qbd.salesRepresentatives.retrieve( '80000001-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg' }, ); console.log(salesRepresentative.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) sales_representative = conductor.qbd.sales_representatives.retrieve( id="80000001-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(sales_representative.id) post: summary: Update a sales representative description: Updates an existing sales representative. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the sales representative to update. example: 80000001-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the sales representative to update. requestBody: required: true content: application/json: schema: type: object properties: revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of the sales representative 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. example: '1721172183' initial: description: |- The initials of this sales representative's name. Maximum length: 5 characters. example: JD type: string maxLength: 5 isActive: description: >- Indicates whether this sales representative is active. Inactive objects are typically hidden from views and reports in QuickBooks. Defaults to `true`. example: true type: boolean entityId: description: >- The sales representative's corresponding person entity in QuickBooks, stored as either an employee, vendor, or other-name entry. example: 80000001-1234567890 type: string maxLength: 36 required: - revisionNumber additionalProperties: false responses: '200': description: Returns the updated sales representative. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_sales_representative' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const salesRepresentative = await conductor.qbd.salesRepresentatives.update('80000001-1234567890', { revisionNumber: '1721172183', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(salesRepresentative.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) sales_representative = conductor.qbd.sales_representatives.update( id="80000001-1234567890", revision_number="1721172183", conductor_end_user_id="end_usr_1234567abcdefg", ) print(sales_representative.id) /quickbooks-desktop/sales-tax-codes: get: summary: List all sales-tax codes description: >- Returns a list of sales-tax codes. **NOTE:** QuickBooks Desktop does not support pagination for sales-tax codes; hence, there is no `cursor` parameter. Users typically have few sales-tax codes. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: query name: ids schema: description: >- Filter for specific sales-tax codes 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: - 80000001-1234567890 type: array items: type: string description: >- Filter for specific sales-tax codes 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. - in: query name: names schema: description: >- Filter for specific sales-tax codes by their name(s), case-insensitive. Like `id`, `name` is a unique identifier for a sales-tax code. **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: - Tax type: array items: type: string description: >- Filter for specific sales-tax codes by their name(s), case-insensitive. Like `id`, `name` is a unique identifier for a sales-tax code. **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. - in: query name: limit schema: description: >- The maximum number of objects to return. **IMPORTANT**: QuickBooks Desktop does not support cursor-based pagination for sales-tax codes. 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 sales-tax codes without limit, unlike paginated endpoints which default to 150 records. This is acceptable because sales-tax codes typically have low record counts. example: 10 type: integer minimum: 1 description: >- The maximum number of objects to return. **IMPORTANT**: QuickBooks Desktop does not support cursor-based pagination for sales-tax codes. 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 sales-tax codes without limit, unlike paginated endpoints which default to 150 records. This is acceptable because sales-tax codes typically have low record counts. - in: query name: status schema: description: Filter for sales-tax codes that are active, inactive, or both. example: active type: string enum: - active - all - inactive default: active description: Filter for sales-tax codes that are active, inactive, or both. - in: query name: updatedAfter schema: description: >- Filter for sales-tax codes 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. example: 2025-01-01T12:34:56.000Z type: string description: >- Filter for sales-tax codes 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. - in: query name: updatedBefore schema: description: >- Filter for sales-tax codes 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. example: 2025-02-01T12:34:56.000Z type: string description: >- Filter for sales-tax codes 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. - in: query name: nameContains schema: description: >- Filter for sales-tax codes whose `name` contains this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameStartsWith` or `nameEndsWith`. example: ABC type: string description: >- Filter for sales-tax codes whose `name` contains this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameStartsWith` or `nameEndsWith`. - in: query name: nameStartsWith schema: description: >- Filter for sales-tax codes whose `name` starts with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameEndsWith`. example: ABC type: string description: >- Filter for sales-tax codes whose `name` starts with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameEndsWith`. - in: query name: nameEndsWith schema: description: >- Filter for sales-tax codes whose `name` ends with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameStartsWith`. example: ABC type: string description: >- Filter for sales-tax codes whose `name` ends with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameStartsWith`. - in: query name: nameFrom schema: description: >- Filter for sales-tax codes whose `name` is alphabetically greater than or equal to this value. example: A type: string description: >- Filter for sales-tax codes whose `name` is alphabetically greater than or equal to this value. - in: query name: nameTo schema: description: >- Filter for sales-tax codes whose `name` is alphabetically less than or equal to this value. example: Z type: string description: >- Filter for sales-tax codes whose `name` is alphabetically less than or equal to this value. responses: '200': description: Returns a list of sales-tax codes. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: objectType: description: The type of object. This value is always `"list"`. example: list type: string const: list url: type: string description: The endpoint URL where this list can be accessed. example: /v1/quickbooks-desktop/sales-tax-codes data: type: array items: $ref: '#/components/schemas/qbd_sales_tax_code' description: The array of sales-tax codes. required: - objectType - url - data additionalProperties: false x-codeSamples: - lang: JavaScript source: |- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const salesTaxCodes = await conductor.qbd.salesTaxCodes.list({ conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(salesTaxCodes.data); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) sales_tax_codes = conductor.qbd.sales_tax_codes.list( conductor_end_user_id="end_usr_1234567abcdefg", ) print(sales_tax_codes.data) post: summary: Create a sales-tax code description: Creates a new sales-tax code. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. requestBody: required: true content: application/json: schema: type: object properties: name: type: string maxLength: 3 description: >- The case-insensitive unique name of this sales-tax code, unique across all sales-tax codes. This short name will appear on sales forms to identify the tax status of an item. **NOTE**: Sales-tax codes do not have a `fullName` field because they are not hierarchical objects, which is why `name` is unique for them but not for objects that have parents. Maximum length: 3 characters. example: Tax isActive: description: >- Indicates whether this sales-tax code is active. Inactive objects are typically hidden from views and reports in QuickBooks. Defaults to `true`. example: true default: true type: boolean isTaxable: type: boolean description: >- Indicates whether this sales-tax code is tracking taxable sales. This field cannot be modified once the sales-tax code has been used in a transaction. example: true description: description: A description of this sales-tax code. example: Standard tax rate for California type: string salesTaxItemId: description: >- The sales-tax item used to calculate the actual tax amount for this sales-tax code's transactions by applying a specific tax rate collected for a single tax agency. Unlike `salesTaxCode`, which only indicates general taxability, this field drives the actual tax calculation and reporting. example: 80000001-1234567890 type: string maxLength: 36 required: - name - isTaxable additionalProperties: false responses: '200': description: Returns the newly created sales-tax code. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_sales_tax_code' x-codeSamples: - lang: JavaScript source: |- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const salesTaxCode = await conductor.qbd.salesTaxCodes.create({ isTaxable: true, name: 'Tax', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(salesTaxCode.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) sales_tax_code = conductor.qbd.sales_tax_codes.create( is_taxable=True, name="Tax", conductor_end_user_id="end_usr_1234567abcdefg", ) print(sales_tax_code.id) /quickbooks-desktop/sales-tax-codes/{id}: get: summary: Retrieve a sales-tax code description: >- Retrieves a sales-tax code by ID. **IMPORTANT:** If you need to fetch multiple specific sales-tax codes 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. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the sales-tax code to retrieve. example: 80000001-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the sales-tax code to retrieve. responses: '200': description: Returns the specified sales-tax code. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_sales_tax_code' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const salesTaxCode = await conductor.qbd.salesTaxCodes.retrieve('80000001-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(salesTaxCode.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) sales_tax_code = conductor.qbd.sales_tax_codes.retrieve( id="80000001-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(sales_tax_code.id) post: summary: Update a sales-tax code description: >- Updates a sales-tax code’s name, activity status, or linked tax items. Once a code has been used you can’t flip it between taxable and non-taxable, and the built-in TAX/NON codes keep their original taxable setting, so plan new codes if you need a different tax status. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the sales-tax code to update. example: 80000001-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the sales-tax code to update. requestBody: required: true content: application/json: schema: type: object properties: revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of the sales-tax code 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. example: '1721172183' name: description: >- The case-insensitive unique name of this sales-tax code, unique across all sales-tax codes. This short name will appear on sales forms to identify the tax status of an item. **NOTE**: Sales-tax codes do not have a `fullName` field because they are not hierarchical objects, which is why `name` is unique for them but not for objects that have parents. Maximum length: 3 characters. example: Tax type: string maxLength: 3 isActive: description: >- Indicates whether this sales-tax code is active. Inactive objects are typically hidden from views and reports in QuickBooks. Defaults to `true`. example: true type: boolean isTaxable: description: >- Indicates whether this sales-tax code is tracking taxable sales. This field cannot be modified once the sales-tax code has been used in a transaction. example: true type: boolean description: description: A description of this sales-tax code. example: Standard tax rate for California type: string salesTaxItemId: description: >- The sales-tax item used to calculate the actual tax amount for this sales-tax code's transactions by applying a specific tax rate collected for a single tax agency. Unlike `salesTaxCode`, which only indicates general taxability, this field drives the actual tax calculation and reporting. example: 80000001-1234567890 type: string maxLength: 36 required: - revisionNumber additionalProperties: false responses: '200': description: Returns the updated sales-tax code. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_sales_tax_code' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const salesTaxCode = await conductor.qbd.salesTaxCodes.update('80000001-1234567890', { revisionNumber: '1721172183', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(salesTaxCode.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) sales_tax_code = conductor.qbd.sales_tax_codes.update( id="80000001-1234567890", revision_number="1721172183", conductor_end_user_id="end_usr_1234567abcdefg", ) print(sales_tax_code.id) /quickbooks-desktop/sales-tax-group-items: get: summary: List all sales-tax group items description: >- Returns a list of sales-tax group items. Use the `cursor` parameter to paginate through the results. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: query name: ids schema: description: >- Filter for specific sales-tax group items 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: - 80000001-1234567890 type: array items: type: string description: >- Filter for specific sales-tax group items 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. - in: query name: names schema: description: >- Filter for specific sales-tax group items by their name(s), case-insensitive. Like `id`, `name` is a unique identifier for a sales-tax group item. **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: - Standard Tax Group type: array items: type: string description: >- Filter for specific sales-tax group items by their name(s), case-insensitive. Like `id`, `name` is a unique identifier for a sales-tax group item. **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. - in: query name: limit schema: default: 150 description: >- 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. example: 150 type: integer minimum: 1 maximum: 150 description: >- 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. - in: query name: cursor schema: description: >- 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 type: string description: >- 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. - in: query name: status schema: description: >- Filter for sales-tax group items that are active, inactive, or both. example: active type: string enum: - active - all - inactive default: active description: Filter for sales-tax group items that are active, inactive, or both. - in: query name: updatedAfter schema: description: >- Filter for sales-tax group items 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. example: 2025-01-01T12:34:56.000Z type: string description: >- Filter for sales-tax group items 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. - in: query name: updatedBefore schema: description: >- Filter for sales-tax group items 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. example: 2025-02-01T12:34:56.000Z type: string description: >- Filter for sales-tax group items 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. - in: query name: nameContains schema: description: >- Filter for sales-tax group items whose `name` contains this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameStartsWith` or `nameEndsWith`. example: ABC type: string description: >- Filter for sales-tax group items whose `name` contains this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameStartsWith` or `nameEndsWith`. - in: query name: nameStartsWith schema: description: >- Filter for sales-tax group items whose `name` starts with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameEndsWith`. example: ABC type: string description: >- Filter for sales-tax group items whose `name` starts with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameEndsWith`. - in: query name: nameEndsWith schema: description: >- Filter for sales-tax group items whose `name` ends with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameStartsWith`. example: ABC type: string description: >- Filter for sales-tax group items whose `name` ends with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameStartsWith`. - in: query name: nameFrom schema: description: >- Filter for sales-tax group items whose `name` is alphabetically greater than or equal to this value. example: A type: string description: >- Filter for sales-tax group items whose `name` is alphabetically greater than or equal to this value. - in: query name: nameTo schema: description: >- Filter for sales-tax group items whose `name` is alphabetically less than or equal to this value. example: Z type: string description: >- Filter for sales-tax group items whose `name` is alphabetically less than or equal to this value. responses: '200': description: Returns a list of sales-tax group items. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: objectType: description: The type of object. This value is always `"list"`. example: list type: string const: list url: type: string description: The endpoint URL where this list can be accessed. example: /v1/quickbooks-desktop/sales-tax-group-items data: type: array items: $ref: '#/components/schemas/qbd_sales_tax_group_item' description: The array of sales-tax group items. nextCursor: anyOf: - type: string - type: 'null' description: >- The `nextCursor` is a pagination token returned in the response when you use the `limit` parameter in your request. To retrieve subsequent pages of results, include this token as the value of the `cursor` request parameter in your following API calls. **NOTE**: The `nextCursor` value remains constant throughout the pagination process for a specific list instance; continue to use the same `nextCursor` token in each request to fetch additional pages. example: 12345678-abcd-abcd-example-1234567890ab remainingCount: anyOf: - type: number - type: 'null' description: The number of objects remaining to be fetched. example: 10 hasMore: type: boolean description: Indicates whether there are more objects to be fetched. required: - objectType - url - data - nextCursor - remainingCount - hasMore additionalProperties: false x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); // Automatically fetches more pages as needed. for await (const salesTaxGroupItem of conductor.qbd.salesTaxGroupItems.list({ conductorEndUserId: 'end_usr_1234567abcdefg', })) { console.log(salesTaxGroupItem.id); } - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) page = conductor.qbd.sales_tax_group_items.list( conductor_end_user_id="end_usr_1234567abcdefg", ) page = page.data[0] print(page.id) post: summary: Create a sales-tax group item description: Creates a new sales-tax group item. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. requestBody: required: true content: application/json: schema: type: object properties: name: type: string maxLength: 31 description: >- The case-insensitive unique name of this sales-tax group item, unique across all sales-tax group items. **NOTE**: Sales-tax group items do not have a `fullName` field because they are not hierarchical objects, which is why `name` is unique for them but not for objects that have parents. Maximum length: 31 characters. example: Standard Tax Group barcode: description: The sales-tax group item's barcode. type: object properties: value: description: The item's barcode value. example: '012345678905' type: string assignEvenIfUsed: description: >- Indicates whether to assign the barcode even if it is already used. example: false default: false type: boolean allowOverride: description: Indicates whether to allow the barcode to be overridden. example: false default: false type: boolean additionalProperties: false isActive: description: >- Indicates whether this sales-tax group item is active. Inactive objects are typically hidden from views and reports in QuickBooks. Defaults to `true`. example: true default: true type: boolean description: description: >- The sales-tax group item's description that will appear on sales forms that include this item. example: Combined city, county, and state sales tax type: string externalId: type: string format: uuid description: >- 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. **IMPORTANT**: This field must be formatted as a valid GUID; otherwise, QuickBooks will return an error. example: 12345678-abcd-1234-abcd-1234567890ab salesTaxItemIds: minItems: 1 type: array items: type: string maxLength: 36 description: >- The sales-tax items that make up this sales-tax group item. QuickBooks Desktop applies these sales-tax items together as one tax selection while tracking each sales tax separately. example: - 80000001-1234567890 required: - name - salesTaxItemIds additionalProperties: false responses: '200': description: Returns the newly created sales-tax group item. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_sales_tax_group_item' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const salesTaxGroupItem = await conductor.qbd.salesTaxGroupItems.create({ name: 'Standard Tax Group', salesTaxItemIds: ['80000001-1234567890'], conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(salesTaxGroupItem.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) sales_tax_group_item = conductor.qbd.sales_tax_group_items.create( name="Standard Tax Group", sales_tax_item_ids=["80000001-1234567890"], conductor_end_user_id="end_usr_1234567abcdefg", ) print(sales_tax_group_item.id) /quickbooks-desktop/sales-tax-group-items/{id}: get: summary: Retrieve a sales-tax group item description: >- Retrieves a sales-tax group item by ID. **IMPORTANT:** If you need to fetch multiple specific sales-tax group items 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. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the sales-tax group item to retrieve. example: 80000001-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the sales-tax group item to retrieve. responses: '200': description: Returns the specified sales-tax group item. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_sales_tax_group_item' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const salesTaxGroupItem = await conductor.qbd.salesTaxGroupItems.retrieve('80000001-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(salesTaxGroupItem.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) sales_tax_group_item = conductor.qbd.sales_tax_group_items.retrieve( id="80000001-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(sales_tax_group_item.id) post: summary: Update a sales-tax group item description: Updates an existing sales-tax group item. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the sales-tax group item to update. example: 80000001-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the sales-tax group item to update. requestBody: required: true content: application/json: schema: type: object properties: revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of the sales-tax group item 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. example: '1721172183' name: description: >- The case-insensitive unique name of this sales-tax group item, unique across all sales-tax group items. **NOTE**: Sales-tax group items do not have a `fullName` field because they are not hierarchical objects, which is why `name` is unique for them but not for objects that have parents. Maximum length: 31 characters. example: Standard Tax Group type: string maxLength: 31 barcode: description: The sales-tax group item's barcode. type: object properties: value: description: The item's barcode value. example: '012345678905' type: string assignEvenIfUsed: description: >- Indicates whether to assign the barcode even if it is already used. example: false default: false type: boolean allowOverride: description: Indicates whether to allow the barcode to be overridden. example: false default: false type: boolean additionalProperties: false isActive: description: >- Indicates whether this sales-tax group item is active. Inactive objects are typically hidden from views and reports in QuickBooks. Defaults to `true`. example: true type: boolean description: description: >- The sales-tax group item's description that will appear on sales forms that include this item. example: Combined city, county, and state sales tax type: string salesTaxItemIds: description: >- The sales-tax items that make up this sales-tax group item. QuickBooks Desktop applies these sales-tax items together as one tax selection while tracking each sales tax separately. example: - 80000001-1234567890 minItems: 1 type: array items: type: string maxLength: 36 required: - revisionNumber additionalProperties: false responses: '200': description: Returns the updated sales-tax group item. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_sales_tax_group_item' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const salesTaxGroupItem = await conductor.qbd.salesTaxGroupItems.update('80000001-1234567890', { revisionNumber: '1721172183', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(salesTaxGroupItem.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) sales_tax_group_item = conductor.qbd.sales_tax_group_items.update( id="80000001-1234567890", revision_number="1721172183", conductor_end_user_id="end_usr_1234567abcdefg", ) print(sales_tax_group_item.id) /quickbooks-desktop/sales-tax-items: get: summary: List all sales-tax items description: >- Returns a list of sales-tax items. Use the `cursor` parameter to paginate through the results. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: query name: ids schema: description: >- Filter for specific sales-tax items 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: - 80000001-1234567890 type: array items: type: string description: >- Filter for specific sales-tax items 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. - in: query name: names schema: description: >- Filter for specific sales-tax items by their name(s), case-insensitive. Like `id`, `name` is a unique identifier for a sales-tax item. **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: - Standard Tax type: array items: type: string description: >- Filter for specific sales-tax items by their name(s), case-insensitive. Like `id`, `name` is a unique identifier for a sales-tax item. **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. - in: query name: limit schema: default: 150 description: >- 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. example: 150 type: integer minimum: 1 maximum: 150 description: >- 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. - in: query name: cursor schema: description: >- 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 type: string description: >- 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. - in: query name: status schema: description: Filter for sales-tax items that are active, inactive, or both. example: active type: string enum: - active - all - inactive default: active description: Filter for sales-tax items that are active, inactive, or both. - in: query name: updatedAfter schema: description: >- Filter for sales-tax items 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. example: 2025-01-01T12:34:56.000Z type: string description: >- Filter for sales-tax items 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. - in: query name: updatedBefore schema: description: >- Filter for sales-tax items 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. example: 2025-02-01T12:34:56.000Z type: string description: >- Filter for sales-tax items 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. - in: query name: nameContains schema: description: >- Filter for sales-tax items whose `name` contains this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameStartsWith` or `nameEndsWith`. example: ABC type: string description: >- Filter for sales-tax items whose `name` contains this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameStartsWith` or `nameEndsWith`. - in: query name: nameStartsWith schema: description: >- Filter for sales-tax items whose `name` starts with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameEndsWith`. example: ABC type: string description: >- Filter for sales-tax items whose `name` starts with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameEndsWith`. - in: query name: nameEndsWith schema: description: >- Filter for sales-tax items whose `name` ends with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameStartsWith`. example: ABC type: string description: >- Filter for sales-tax items whose `name` ends with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameStartsWith`. - in: query name: nameFrom schema: description: >- Filter for sales-tax items whose `name` is alphabetically greater than or equal to this value. example: A type: string description: >- Filter for sales-tax items whose `name` is alphabetically greater than or equal to this value. - in: query name: nameTo schema: description: >- Filter for sales-tax items whose `name` is alphabetically less than or equal to this value. example: Z type: string description: >- Filter for sales-tax items whose `name` is alphabetically less than or equal to this value. - in: query name: classIds schema: description: >- Filter for sales-tax items of these classes. A class is a way end-users can categorize sales-tax items in QuickBooks. example: - 80000001-1234567890 type: array items: type: string description: >- Filter for sales-tax items of these classes. A class is a way end-users can categorize sales-tax items in QuickBooks. responses: '200': description: Returns a list of sales-tax items. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: objectType: description: The type of object. This value is always `"list"`. example: list type: string const: list url: type: string description: The endpoint URL where this list can be accessed. example: /v1/quickbooks-desktop/sales-tax-items data: type: array items: $ref: '#/components/schemas/qbd_sales_tax_item' description: The array of sales-tax items. nextCursor: anyOf: - type: string - type: 'null' description: >- The `nextCursor` is a pagination token returned in the response when you use the `limit` parameter in your request. To retrieve subsequent pages of results, include this token as the value of the `cursor` request parameter in your following API calls. **NOTE**: The `nextCursor` value remains constant throughout the pagination process for a specific list instance; continue to use the same `nextCursor` token in each request to fetch additional pages. example: 12345678-abcd-abcd-example-1234567890ab remainingCount: anyOf: - type: number - type: 'null' description: The number of objects remaining to be fetched. example: 10 hasMore: type: boolean description: Indicates whether there are more objects to be fetched. required: - objectType - url - data - nextCursor - remainingCount - hasMore additionalProperties: false x-codeSamples: - lang: JavaScript source: |- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); // Automatically fetches more pages as needed. for await (const salesTaxItem of conductor.qbd.salesTaxItems.list({ conductorEndUserId: 'end_usr_1234567abcdefg', })) { console.log(salesTaxItem.id); } - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) page = conductor.qbd.sales_tax_items.list( conductor_end_user_id="end_usr_1234567abcdefg", ) page = page.data[0] print(page.id) post: summary: Create a sales-tax item description: Creates a new sales-tax item. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. requestBody: required: true content: application/json: schema: type: object properties: name: type: string maxLength: 31 description: >- The case-insensitive unique name of this sales-tax item, unique across all sales-tax items. **NOTE**: Sales-tax items do not have a `fullName` field because they are not hierarchical objects, which is why `name` is unique for them but not for objects that have parents. Maximum length: 31 characters. example: Standard Tax barcode: description: The sales-tax item's barcode. type: object properties: value: description: The item's barcode value. example: '012345678905' type: string assignEvenIfUsed: description: >- Indicates whether to assign the barcode even if it is already used. example: false default: false type: boolean allowOverride: description: Indicates whether to allow the barcode to be overridden. example: false default: false type: boolean additionalProperties: false isActive: description: >- Indicates whether this sales-tax item is active. Inactive objects are typically hidden from views and reports in QuickBooks. Defaults to `true`. example: true default: true type: boolean classId: description: >- The sales-tax item'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. example: 80000001-1234567890 type: string maxLength: 36 description: description: >- The sales-tax item's description that will appear on sales forms that include this item. example: Standard rate sales tax for California type: string taxRate: description: >- The tax rate defined by this sales-tax item, represented as a decimal string. For example, "7.5" represents a 7.5% tax rate. This rate determines the amount of sales tax applied when this item is used in transactions. If a non-zero `taxRate` is specified, then the `taxVendor` field is required. example: '7.5' type: string taxVendorId: description: >- The tax agency (vendor) to whom collected sales taxes are owed for this sales-tax item. This field refers to a vendor in QuickBooks that represents the tax authority. If a non-zero `taxRate` is specified, then `taxVendor` is required. example: 80000001-1234567890 type: string maxLength: 36 salesTaxReturnLineId: description: >- The specific line on the sales tax return form where the tax collected using this sales-tax item should be reported. example: 80000001-1234567890 type: string maxLength: 36 externalId: type: string format: uuid description: >- 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. **IMPORTANT**: This field must be formatted as a valid GUID; otherwise, QuickBooks will return an error. example: 12345678-abcd-1234-abcd-1234567890ab required: - name additionalProperties: false responses: '200': description: Returns the newly created sales-tax item. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_sales_tax_item' x-codeSamples: - lang: JavaScript source: |- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const salesTaxItem = await conductor.qbd.salesTaxItems.create({ name: 'Standard Tax', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(salesTaxItem.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) sales_tax_item = conductor.qbd.sales_tax_items.create( name="Standard Tax", conductor_end_user_id="end_usr_1234567abcdefg", ) print(sales_tax_item.id) /quickbooks-desktop/sales-tax-items/{id}: get: summary: Retrieve a sales-tax item description: >- Retrieves a sales-tax item by ID. **IMPORTANT:** If you need to fetch multiple specific sales-tax items 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. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the sales-tax item to retrieve. example: 80000001-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the sales-tax item to retrieve. responses: '200': description: Returns the specified sales-tax item. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_sales_tax_item' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const salesTaxItem = await conductor.qbd.salesTaxItems.retrieve('80000001-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(salesTaxItem.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) sales_tax_item = conductor.qbd.sales_tax_items.retrieve( id="80000001-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(sales_tax_item.id) post: summary: Update a sales-tax item description: Updates an existing sales-tax item. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the sales-tax item to update. example: 80000001-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the sales-tax item to update. requestBody: required: true content: application/json: schema: type: object properties: revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of the sales-tax item 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. example: '1721172183' name: description: >- The case-insensitive unique name of this sales-tax item, unique across all sales-tax items. **NOTE**: Sales-tax items do not have a `fullName` field because they are not hierarchical objects, which is why `name` is unique for them but not for objects that have parents. Maximum length: 31 characters. example: Standard Tax type: string maxLength: 31 barcode: description: The sales-tax item's barcode. type: object properties: value: description: The item's barcode value. example: '012345678905' type: string assignEvenIfUsed: description: >- Indicates whether to assign the barcode even if it is already used. example: false default: false type: boolean allowOverride: description: Indicates whether to allow the barcode to be overridden. example: false default: false type: boolean additionalProperties: false isActive: description: >- Indicates whether this sales-tax item is active. Inactive objects are typically hidden from views and reports in QuickBooks. Defaults to `true`. example: true type: boolean classId: description: >- The sales-tax item'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. example: 80000001-1234567890 type: string maxLength: 36 description: description: >- The sales-tax item's description that will appear on sales forms that include this item. example: Standard rate sales tax for California type: string taxRate: description: >- The tax rate defined by this sales-tax item, represented as a decimal string. For example, "7.5" represents a 7.5% tax rate. This rate determines the amount of sales tax applied when this item is used in transactions. If a non-zero `taxRate` is specified, then the `taxVendor` field is required. example: '7.5' type: string taxVendorId: description: >- The tax agency (vendor) to whom collected sales taxes are owed for this sales-tax item. This field refers to a vendor in QuickBooks that represents the tax authority. If a non-zero `taxRate` is specified, then `taxVendor` is required. example: 80000001-1234567890 type: string maxLength: 36 salesTaxReturnLineId: description: >- The specific line on the sales tax return form where the tax collected using this sales-tax item should be reported. example: 80000001-1234567890 type: string maxLength: 36 required: - revisionNumber additionalProperties: false responses: '200': description: Returns the updated sales-tax item. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_sales_tax_item' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const salesTaxItem = await conductor.qbd.salesTaxItems.update('80000001-1234567890', { revisionNumber: '1721172183', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(salesTaxItem.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) sales_tax_item = conductor.qbd.sales_tax_items.update( id="80000001-1234567890", revision_number="1721172183", conductor_end_user_id="end_usr_1234567abcdefg", ) print(sales_tax_item.id) /quickbooks-desktop/sales-tax-payment-checks: get: summary: List all sales-tax payment checks description: >- Returns a list of sales-tax payment checks. Use the `cursor` parameter to paginate through the results. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: query name: ids schema: description: >- Filter for specific sales-tax payment checks 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 type: array items: type: string description: >- Filter for specific sales-tax payment checks 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. - in: query name: refNumbers schema: description: >- Filter for specific sales-tax payment checks 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: - SALES-TAX PAYMENT CHECK-1234 type: array items: type: string description: >- Filter for specific sales-tax payment checks 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. - in: query name: limit schema: default: 150 description: >- 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. example: 150 type: integer minimum: 1 maximum: 150 description: >- 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. - in: query name: cursor schema: description: >- 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 type: string description: >- 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. - in: query name: updatedAfter schema: description: >- Filter for sales-tax payment checks 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. example: 2025-01-01T12:34:56.000Z type: string description: >- Filter for sales-tax payment checks 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. - in: query name: updatedBefore schema: description: >- Filter for sales-tax payment checks 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. example: 2025-02-01T12:34:56.000Z type: string description: >- Filter for sales-tax payment checks 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. - in: query name: transactionDateFrom schema: description: >- Filter for sales-tax payment checks 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-01` → `2025-01-01T00:00:00`). example: '2025-01-01' type: string format: date description: >- Filter for sales-tax payment checks 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-01` → `2025-01-01T00:00:00`). - in: query name: transactionDateTo schema: description: >- Filter for sales-tax payment checks 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-01` → `2025-01-01T23:59:59`). example: '2025-02-01' type: string format: date description: >- Filter for sales-tax payment checks 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-01` → `2025-01-01T23:59:59`). - in: query name: vendorIds schema: description: >- Filter for sales-tax payment checks paid to these vendors. These are the sales-tax agencies, represented as QuickBooks vendors, paid by these checks. example: - 80000001-1234567890 type: array items: type: string description: >- Filter for sales-tax payment checks paid to these vendors. These are the sales-tax agencies, represented as QuickBooks vendors, paid by these checks. - in: query name: accountIds schema: description: >- Filter for sales-tax payment checks associated with these accounts. example: - 80000001-1234567890 type: array items: type: string description: Filter for sales-tax payment checks associated with these accounts. - in: query name: itemIds schema: description: Filter for sales-tax payment checks containing these items. example: - 80000001-1234567890 type: array items: type: string description: Filter for sales-tax payment checks containing these items. - in: query name: refNumberContains schema: description: >- Filter for sales-tax payment checks whose `refNumber` contains this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberStartsWith` or `refNumberEndsWith`. example: TAXPMT-1234 type: string description: >- Filter for sales-tax payment checks whose `refNumber` contains this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberStartsWith` or `refNumberEndsWith`. - in: query name: refNumberStartsWith schema: description: >- Filter for sales-tax payment checks whose `refNumber` starts with this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberContains` or `refNumberEndsWith`. example: TAXPMT type: string description: >- Filter for sales-tax payment checks whose `refNumber` starts with this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberContains` or `refNumberEndsWith`. - in: query name: refNumberEndsWith schema: description: >- Filter for sales-tax payment checks whose `refNumber` ends with this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberContains` or `refNumberStartsWith`. example: '1234' type: string description: >- Filter for sales-tax payment checks whose `refNumber` ends with this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberContains` or `refNumberStartsWith`. - in: query name: refNumberFrom schema: description: >- Filter for sales-tax payment checks 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: TAXPMT-0001 type: string description: >- Filter for sales-tax payment checks 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. - in: query name: refNumberTo schema: description: >- Filter for sales-tax payment checks 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: TAXPMT-9999 type: string description: >- Filter for sales-tax payment checks 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. - in: query name: includeLineItems schema: description: Whether to include line items in the response. Defaults to `true`. example: true type: boolean default: true description: Whether to include line items in the response. Defaults to `true`. responses: '200': description: Returns a list of sales-tax payment checks. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: objectType: description: The type of object. This value is always `"list"`. example: list type: string const: list url: type: string description: The endpoint URL where this list can be accessed. example: /v1/quickbooks-desktop/sales-tax-payment-checks data: type: array items: $ref: '#/components/schemas/qbd_sales_tax_payment_check' description: The array of sales-tax payment checks. nextCursor: anyOf: - type: string - type: 'null' description: >- The `nextCursor` is a pagination token returned in the response when you use the `limit` parameter in your request. To retrieve subsequent pages of results, include this token as the value of the `cursor` request parameter in your following API calls. **NOTE**: The `nextCursor` value remains constant throughout the pagination process for a specific list instance; continue to use the same `nextCursor` token in each request to fetch additional pages. example: 12345678-abcd-abcd-example-1234567890ab remainingCount: anyOf: - type: number - type: 'null' description: The number of objects remaining to be fetched. example: 10 hasMore: type: boolean description: Indicates whether there are more objects to be fetched. required: - objectType - url - data - nextCursor - remainingCount - hasMore additionalProperties: false x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); // Automatically fetches more pages as needed. for await (const salesTaxPaymentCheck of conductor.qbd.salesTaxPaymentChecks.list({ conductorEndUserId: 'end_usr_1234567abcdefg', })) { console.log(salesTaxPaymentCheck.id); } - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) page = conductor.qbd.sales_tax_payment_checks.list( conductor_end_user_id="end_usr_1234567abcdefg", ) page = page.data[0] print(page.id) post: summary: Create a sales-tax payment check description: Creates a new sales-tax payment check. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. requestBody: required: true content: application/json: schema: type: object properties: vendorId: description: >- The sales-tax agency, represented as a QuickBooks vendor, receiving this sales-tax payment check. This must match the tax vendor associated with the sales-tax items in the payment lines. example: 80000001-1234567890 type: string maxLength: 36 transactionDate: type: string format: date description: >- The date of this sales-tax payment check, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-01' bankAccountId: description: >- The bank account from which the funds are being drawn for this sales-tax payment check; e.g., Checking or Savings. This sales-tax payment check will decrease the balance of this account. example: 80000001-1234567890 type: string maxLength: 36 isQueuedForPrint: type: boolean description: >- Indicates whether this sales-tax payment check is included in the queue of documents for QuickBooks to print. example: true refNumber: description: >- The case-sensitive user-defined reference number for this sales-tax payment check, 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. When left blank in this create request, this field will be left blank in QuickBooks (i.e., it does *not* auto-increment). **IMPORTANT**: For checks, this field is the check number. Maximum length: 11 characters. example: TAXPMT-1234 type: string maxLength: 11 memo: description: A memo or note for this sales-tax payment check. example: Sales tax payment for Q3 2024 type: string address: description: The address that is printed on the sales-tax payment check. type: object properties: line1: description: >- The first line of the address (e.g., street, PO Box, or company name). Maximum length: 41 characters. example: Conductor Labs Inc. type: string maxLength: 41 line2: description: >- The second line of the address, if needed (e.g., apartment, suite, unit, or building). Maximum length: 41 characters. example: 540 Market St. type: string maxLength: 41 line3: description: |- The third line of the address, if needed. Maximum length: 41 characters. example: Suite 100 type: string maxLength: 41 line4: description: |- The fourth line of the address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 line5: description: |- The fifth line of the address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 city: description: >- The city, district, suburb, town, or village name of the address. Maximum length: 31 characters. example: San Francisco type: string maxLength: 31 state: description: >- The state, county, province, or region name of the address. Maximum length: 21 characters. example: CA type: string maxLength: 21 postalCode: description: |- The postal code or ZIP code of the address. Maximum length: 13 characters. example: '94110' type: string maxLength: 13 country: description: The country name of the address. example: United States type: string note: description: >- A note written at the bottom of the address in the form in which it appears, such as the invoice form. example: Conductor HQ type: string additionalProperties: false externalId: type: string format: uuid description: >- 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. **IMPORTANT**: This field must be formatted as a valid GUID; otherwise, QuickBooks will return an error. example: 12345678-abcd-1234-abcd-1234567890ab lines: minItems: 1 type: array items: type: object properties: salesTaxItemId: description: >- The sales-tax item whose payable balance this sales-tax payment check line is paying. example: 80000001-1234567890 type: string maxLength: 36 amount: type: string description: >- The sales-tax payment amount paid toward this line's sales-tax item, represented as a decimal string. Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45"). example: '1000.00' required: - amount additionalProperties: false description: >- The payment lines in this sales-tax payment check, each recording an amount paid toward a sales-tax item. required: - vendorId - transactionDate - bankAccountId - lines additionalProperties: false responses: '200': description: Returns the newly created sales-tax payment check. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_sales_tax_payment_check' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const salesTaxPaymentCheck = await conductor.qbd.salesTaxPaymentChecks.create({ bankAccountId: '80000001-1234567890', lines: [{ amount: '1000.00' }], transactionDate: '2024-10-01', vendorId: '80000001-1234567890', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(salesTaxPaymentCheck.id); - lang: Python source: >- import os from datetime import date from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) sales_tax_payment_check = conductor.qbd.sales_tax_payment_checks.create( bank_account_id="80000001-1234567890", lines=[{ "amount": "1000.00" }], transaction_date=date.fromisoformat("2024-10-01"), vendor_id="80000001-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(sales_tax_payment_check.id) /quickbooks-desktop/sales-tax-payment-checks/{id}: get: summary: Retrieve a sales-tax payment check description: >- Retrieves a sales-tax payment check by ID. **IMPORTANT:** If you need to fetch multiple specific sales-tax payment checks 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. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the sales-tax payment check to retrieve. example: 123ABC-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the sales-tax payment check to retrieve. responses: '200': description: Returns the specified sales-tax payment check. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_sales_tax_payment_check' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const salesTaxPaymentCheck = await conductor.qbd.salesTaxPaymentChecks.retrieve( '123ABC-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg' }, ); console.log(salesTaxPaymentCheck.id); - lang: Python source: >- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) sales_tax_payment_check = conductor.qbd.sales_tax_payment_checks.retrieve( id="123ABC-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(sales_tax_payment_check.id) post: summary: Update a sales-tax payment check description: Updates an existing sales-tax payment check. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the sales-tax payment check to update. example: 123ABC-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the sales-tax payment check to update. requestBody: required: true content: application/json: schema: type: object properties: revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of the sales-tax payment check 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. example: '1721172183' transactionDate: description: >- The date of this sales-tax payment check, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-01' type: string format: date bankAccountId: description: >- The bank account from which the funds are being drawn for this sales-tax payment check; e.g., Checking or Savings. This sales-tax payment check will decrease the balance of this account. example: 80000001-1234567890 type: string maxLength: 36 isQueuedForPrint: type: boolean description: >- Indicates whether this sales-tax payment check is included in the queue of documents for QuickBooks to print. example: true refNumber: description: >- The case-sensitive user-defined reference number for this sales-tax payment check, 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. **IMPORTANT**: For checks, this field is the check number. Maximum length: 11 characters. example: TAXPMT-1234 type: string maxLength: 11 memo: description: A memo or note for this sales-tax payment check. example: Sales tax payment for Q3 2024 type: string address: description: The address that is printed on the sales-tax payment check. type: object properties: line1: description: >- The first line of the address (e.g., street, PO Box, or company name). Maximum length: 41 characters. example: Conductor Labs Inc. type: string maxLength: 41 line2: description: >- The second line of the address, if needed (e.g., apartment, suite, unit, or building). Maximum length: 41 characters. example: 540 Market St. type: string maxLength: 41 line3: description: |- The third line of the address, if needed. Maximum length: 41 characters. example: Suite 100 type: string maxLength: 41 line4: description: |- The fourth line of the address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 line5: description: |- The fifth line of the address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 city: description: >- The city, district, suburb, town, or village name of the address. Maximum length: 31 characters. example: San Francisco type: string maxLength: 31 state: description: >- The state, county, province, or region name of the address. Maximum length: 21 characters. example: CA type: string maxLength: 21 postalCode: description: |- The postal code or ZIP code of the address. Maximum length: 13 characters. example: '94110' type: string maxLength: 13 country: description: The country name of the address. example: United States type: string note: description: >- A note written at the bottom of the address in the form in which it appears, such as the invoice form. example: Conductor HQ type: string additionalProperties: false required: - revisionNumber additionalProperties: false responses: '200': description: Returns the updated sales-tax payment check. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_sales_tax_payment_check' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const salesTaxPaymentCheck = await conductor.qbd.salesTaxPaymentChecks.update('123ABC-1234567890', { revisionNumber: '1721172183', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(salesTaxPaymentCheck.id); - lang: Python source: >- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) sales_tax_payment_check = conductor.qbd.sales_tax_payment_checks.update( id="123ABC-1234567890", revision_number="1721172183", conductor_end_user_id="end_usr_1234567abcdefg", ) print(sales_tax_payment_check.id) delete: summary: Delete a sales-tax payment check description: >- Permanently deletes a sales-tax payment check. The deletion will fail if the sales-tax payment check is currently in use or has any linked transactions that are in use. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the sales-tax payment check to delete. example: 123ABC-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the sales-tax payment check to delete. responses: '200': description: >- Returns a confirmation of the deletion with the ID of the deleted sales-tax payment check. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: id: type: string description: >- The QuickBooks-assigned unique identifier of the deleted sales-tax payment check. example: 123ABC-1234567890 objectType: description: >- The type of object. This value is always `"qbd_sales_tax_payment_check"`. example: qbd_sales_tax_payment_check type: string const: qbd_sales_tax_payment_check refNumber: anyOf: - type: string - type: 'null' description: >- The case-sensitive user-defined reference number of the deleted sales-tax payment check. example: TAXPMT-1234 deleted: type: boolean description: Indicates whether the sales-tax payment check was deleted. example: true required: - id - objectType - refNumber - deleted additionalProperties: false x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const salesTaxPaymentCheck = await conductor.qbd.salesTaxPaymentChecks.delete('123ABC-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(salesTaxPaymentCheck.id); - lang: Python source: >- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) sales_tax_payment_check = conductor.qbd.sales_tax_payment_checks.delete( id="123ABC-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(sales_tax_payment_check.id) /quickbooks-desktop/sales-tax-payment-checks/{id}/void: post: summary: Void a sales-tax payment check description: >- Voids a sales-tax payment check by setting its amount to zero while keeping a record of it in QuickBooks. The void will fail if the sales-tax payment check is currently in use or has any linked transactions that are in use. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the sales-tax payment check to void. example: 123ABC-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the sales-tax payment check to void. responses: '200': description: >- Returns a confirmation of the void with the ID of the voided sales-tax payment check. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: id: type: string description: >- The QuickBooks-assigned unique identifier of the voided sales-tax payment check. example: 123ABC-1234567890 objectType: description: >- The type of object. This value is always `"qbd_sales_tax_payment_check"`. example: qbd_sales_tax_payment_check type: string const: qbd_sales_tax_payment_check createdAt: anyOf: - type: string - type: 'null' description: >- The date and time when this sales-tax payment check 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. example: 2025-01-01T12:34:56.000Z updatedAt: anyOf: - type: string - type: 'null' description: >- The date and time when this sales-tax payment check 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. example: 2025-02-01T12:34:56.000Z refNumber: anyOf: - type: string - type: 'null' description: >- The case-sensitive user-defined reference number of the voided sales-tax payment check. example: TAXPMT-1234 voided: type: boolean description: Indicates whether the sales-tax payment check was voided. example: true required: - id - objectType - createdAt - updatedAt - refNumber - voided additionalProperties: false x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const response = await conductor.qbd.salesTaxPaymentChecks.void('123ABC-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(response.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) response = conductor.qbd.sales_tax_payment_checks.void( id="123ABC-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(response.id) /quickbooks-desktop/service-items: get: summary: List all service items description: >- Returns a list of service items. Use the `cursor` parameter to paginate through the results. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: query name: ids schema: description: >- Filter for specific service items 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: - 80000001-1234567890 type: array items: type: string description: >- Filter for specific service items 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. - in: query name: fullNames schema: description: >- Filter for specific service items by their full-name(s), case-insensitive. Like `id`, `fullName` is a unique identifier for a service item, formed by by combining the names of its parent objects with its own `name`, separated by colons. For example, if a service item is under "Consulting" and has the `name` "Web-Design", its `fullName` would be "Consulting:Web-Design". **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: - Consulting:Web-Design type: array items: type: string description: >- Filter for specific service items by their full-name(s), case-insensitive. Like `id`, `fullName` is a unique identifier for a service item, formed by by combining the names of its parent objects with its own `name`, separated by colons. For example, if a service item is under "Consulting" and has the `name` "Web-Design", its `fullName` would be "Consulting:Web-Design". **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. - in: query name: limit schema: default: 150 description: >- 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. example: 150 type: integer minimum: 1 maximum: 150 description: >- 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. - in: query name: cursor schema: description: >- 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 type: string description: >- 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. - in: query name: status schema: description: Filter for service items that are active, inactive, or both. example: active type: string enum: - active - all - inactive default: active description: Filter for service items that are active, inactive, or both. - in: query name: updatedAfter schema: description: >- Filter for service items 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. example: 2025-01-01T12:34:56.000Z type: string description: >- Filter for service items 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. - in: query name: updatedBefore schema: description: >- Filter for service items 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. example: 2025-02-01T12:34:56.000Z type: string description: >- Filter for service items 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. - in: query name: nameContains schema: description: >- Filter for service items whose `name` contains this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameStartsWith` or `nameEndsWith`. example: ABC type: string description: >- Filter for service items whose `name` contains this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameStartsWith` or `nameEndsWith`. - in: query name: nameStartsWith schema: description: >- Filter for service items whose `name` starts with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameEndsWith`. example: ABC type: string description: >- Filter for service items whose `name` starts with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameEndsWith`. - in: query name: nameEndsWith schema: description: >- Filter for service items whose `name` ends with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameStartsWith`. example: ABC type: string description: >- Filter for service items whose `name` ends with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameStartsWith`. - in: query name: nameFrom schema: description: >- Filter for service items whose `name` is alphabetically greater than or equal to this value. example: A type: string description: >- Filter for service items whose `name` is alphabetically greater than or equal to this value. - in: query name: nameTo schema: description: >- Filter for service items whose `name` is alphabetically less than or equal to this value. example: Z type: string description: >- Filter for service items whose `name` is alphabetically less than or equal to this value. - in: query name: classIds schema: description: >- Filter for service items of these classes. A class is a way end-users can categorize service items in QuickBooks. example: - 80000001-1234567890 type: array items: type: string description: >- Filter for service items of these classes. A class is a way end-users can categorize service items in QuickBooks. responses: '200': description: Returns a list of service items. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: objectType: description: The type of object. This value is always `"list"`. example: list type: string const: list url: type: string description: The endpoint URL where this list can be accessed. example: /v1/quickbooks-desktop/service-items data: type: array items: $ref: '#/components/schemas/qbd_service_item' description: The array of service items. nextCursor: anyOf: - type: string - type: 'null' description: >- The `nextCursor` is a pagination token returned in the response when you use the `limit` parameter in your request. To retrieve subsequent pages of results, include this token as the value of the `cursor` request parameter in your following API calls. **NOTE**: The `nextCursor` value remains constant throughout the pagination process for a specific list instance; continue to use the same `nextCursor` token in each request to fetch additional pages. example: 12345678-abcd-abcd-example-1234567890ab remainingCount: anyOf: - type: number - type: 'null' description: The number of objects remaining to be fetched. example: 10 hasMore: type: boolean description: Indicates whether there are more objects to be fetched. required: - objectType - url - data - nextCursor - remainingCount - hasMore additionalProperties: false x-codeSamples: - lang: JavaScript source: |- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); // Automatically fetches more pages as needed. for await (const serviceItem of conductor.qbd.serviceItems.list({ conductorEndUserId: 'end_usr_1234567abcdefg', })) { console.log(serviceItem.id); } - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) page = conductor.qbd.service_items.list( conductor_end_user_id="end_usr_1234567abcdefg", ) page = page.data[0] print(page.id) post: summary: Create a service item description: Creates a new service item. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. requestBody: required: true content: application/json: schema: type: object properties: name: type: string maxLength: 31 description: >- The case-insensitive name of this service item. Not guaranteed to be unique because it does not include the names of its hierarchical parent objects like `fullName` does. For example, two service items could both have the `name` "Web-Design", but they could have unique `fullName` values, such as "Consulting:Web-Design" and "Contracting:Web-Design". Maximum length: 31 characters. example: Web-Design barcode: description: The service item's barcode. type: object properties: value: description: The item's barcode value. example: '012345678905' type: string assignEvenIfUsed: description: >- Indicates whether to assign the barcode even if it is already used. example: false default: false type: boolean allowOverride: description: Indicates whether to allow the barcode to be overridden. example: false default: false type: boolean additionalProperties: false isActive: description: >- Indicates whether this service item is active. Inactive objects are typically hidden from views and reports in QuickBooks. Defaults to `true`. example: true default: true type: boolean classId: description: >- The service item'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. example: 80000001-1234567890 type: string maxLength: 36 parentId: description: >- The parent service item one level above this one in the hierarchy. For example, if this service item has a `fullName` of "Consulting:Web-Design", its parent has a `fullName` of "Consulting". If this service item is at the top level, this field will be `null`. example: 80000001-1234567890 type: string maxLength: 36 unitOfMeasureSetId: description: >- The unit-of-measure set associated with this service item, which consists of a base unit and related units. example: 80000001-1234567890 type: string maxLength: 36 salesTaxCodeId: description: >- The default sales-tax code for this service item, determining whether it is taxable or non-taxable. This can be overridden at the transaction-line level. 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. example: 80000001-1234567890 type: string maxLength: 36 salesOrPurchaseDetails: description: >- Details for service items that are exclusively sold or exclusively purchased, but not both. This typically applies to non-inventory items (like a purchased office supply that isn't resold) or service items (like consulting services that are sold but not purchased). **IMPORTANT**: You must specify either `salesOrPurchaseDetails` or `salesAndPurchaseDetails` when creating a service item, but never both because an item cannot have both configurations. type: object properties: description: description: A description of this item. example: Hourly Consulting Service type: string price: description: >- The price at which this item is purchased or sold, represented as a decimal string. example: '19.99' type: string pricePercentage: description: >- The price of this item expressed as a percentage, used instead of `price` when the item's cost is calculated as a percentage of another amount. For example, a service item that costs a percentage of another item's price. example: '10.5' type: string postingAccountId: description: >- The posting account to which transactions involving this item are posted. This could be an income account when selling or an expense account when purchasing. example: 80000001-1234567890 type: string maxLength: 36 required: - postingAccountId additionalProperties: false salesAndPurchaseDetails: description: >- Details for service items that are both purchased and sold, such as reimbursable expenses or inventory items that are bought from vendors and sold to customers. **IMPORTANT**: You must specify either `salesAndPurchaseDetails` or `salesOrPurchaseDetails` when creating a service item, but never both because an item cannot have both configurations. type: object properties: salesDescription: description: >- The description of this item that appears on sales forms (e.g., invoices, sales receipts) when sold to customers. example: High-quality steel bolts suitable for construction type: string salesPrice: description: >- The price at which this item is sold to customers, represented as a decimal string. example: '19.99' type: string incomeAccountId: description: >- The income account used to track revenue from sales of this item. example: 80000001-1234567890 type: string maxLength: 36 purchaseDescription: description: >- The description of this item that appears on purchase forms (e.g., checks, bills, item receipts) when it is ordered or bought from vendors. example: Bulk purchase of steel bolts for inventory type: string purchaseCost: description: >- The cost at which this item is purchased from vendors, represented as a decimal string. example: '15.75' type: string purchaseTaxCodeId: description: >- The tax code applied to purchases of this item. Applicable in regions where purchase taxes are used, such as Canada or the UK. example: 80000001-1234567890 type: string maxLength: 36 expenseAccountId: description: >- The expense account used to track costs from purchases of this item. example: 80000001-1234567890 type: string maxLength: 36 preferredVendorId: description: >- The preferred vendor from whom this item is typically purchased. example: 80000001-1234567890 type: string maxLength: 36 required: - incomeAccountId - expenseAccountId additionalProperties: false externalId: type: string format: uuid description: >- 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. **IMPORTANT**: This field must be formatted as a valid GUID; otherwise, QuickBooks will return an error. example: 12345678-abcd-1234-abcd-1234567890ab required: - name additionalProperties: false responses: '200': description: Returns the newly created service item. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_service_item' x-codeSamples: - lang: JavaScript source: |- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const serviceItem = await conductor.qbd.serviceItems.create({ name: 'Web-Design', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(serviceItem.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) service_item = conductor.qbd.service_items.create( name="Web-Design", conductor_end_user_id="end_usr_1234567abcdefg", ) print(service_item.id) /quickbooks-desktop/service-items/{id}: get: summary: Retrieve a service item description: >- Retrieves a service item by ID. **IMPORTANT:** If you need to fetch multiple specific service items 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. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the service item to retrieve. example: 80000001-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the service item to retrieve. responses: '200': description: Returns the specified service item. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_service_item' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const serviceItem = await conductor.qbd.serviceItems.retrieve('80000001-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(serviceItem.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) service_item = conductor.qbd.service_items.retrieve( id="80000001-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(service_item.id) post: summary: Update a service item description: >- Updates a service item’s details, including its accounts and unit-of-measure set. QuickBooks won’t let you convert a sell-only service into a buy-and-sell service (or the reverse); create a separate item instead. If you’re switching the unit of measure, set `forceUnitOfMeasureChange` so QuickBooks replaces it on existing forms. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the service item to update. example: 80000001-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the service item to update. requestBody: required: true content: application/json: schema: type: object properties: revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of the service item 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. example: '1721172183' name: description: >- The case-insensitive name of this service item. Not guaranteed to be unique because it does not include the names of its hierarchical parent objects like `fullName` does. For example, two service items could both have the `name` "Web-Design", but they could have unique `fullName` values, such as "Consulting:Web-Design" and "Contracting:Web-Design". Maximum length: 31 characters. example: Web-Design type: string maxLength: 31 barcode: description: The service item's barcode. type: object properties: value: description: The item's barcode value. example: '012345678905' type: string assignEvenIfUsed: description: >- Indicates whether to assign the barcode even if it is already used. example: false default: false type: boolean allowOverride: description: Indicates whether to allow the barcode to be overridden. example: false default: false type: boolean additionalProperties: false isActive: description: >- Indicates whether this service item is active. Inactive objects are typically hidden from views and reports in QuickBooks. Defaults to `true`. example: true type: boolean classId: description: >- The service item'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. example: 80000001-1234567890 type: string maxLength: 36 parentId: description: >- The parent service item one level above this one in the hierarchy. For example, if this service item has a `fullName` of "Consulting:Web-Design", its parent has a `fullName` of "Consulting". If this service item is at the top level, this field will be `null`. example: 80000001-1234567890 type: string maxLength: 36 unitOfMeasureSetId: description: >- The unit-of-measure set associated with this service item, which consists of a base unit and related units. example: 80000001-1234567890 type: string maxLength: 36 forceUnitOfMeasureChange: description: >- Indicates whether to allow changing the service item's unit-of-measure set (using the `unitOfMeasureSetId` field) when the base unit of the new unit-of-measure set does not match that of the currently assigned set. Without setting this field to `true` in this scenario, the request will fail with an error; hence, this field is equivalent to accepting the warning prompt in the QuickBooks UI. NOTE: Changing the base unit requires you to update the item's quantities-on-hand and cost to reflect the new unit; otherwise, these values will be inaccurate. Alternatively, consider creating a new item with the desired unit-of-measure set and deactivating the old item. example: false type: boolean salesTaxCodeId: description: >- The default sales-tax code for this service item, determining whether it is taxable or non-taxable. This can be overridden at the transaction-line level. 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. example: 80000001-1234567890 type: string maxLength: 36 salesOrPurchaseDetails: description: >- Details for service items that are exclusively sold or exclusively purchased, but not both. This typically applies to non-inventory items (like a purchased office supply that isn't resold) or service items (like consulting services that are sold but not purchased). **IMPORTANT**: You cannot specify both `salesOrPurchaseDetails` and `salesAndPurchaseDetails` when modifying a service item because an item cannot have both configurations. type: object properties: description: description: A description of this item. example: Hourly Consulting Service type: string price: description: >- The price at which this item is purchased or sold, represented as a decimal string. example: '19.99' type: string pricePercentage: description: >- The price of this item expressed as a percentage, used instead of `price` when the item's cost is calculated as a percentage of another amount. For example, a service item that costs a percentage of another item's price. example: '10.5' type: string postingAccountId: description: >- The posting account to which transactions involving this item are posted. This could be an income account when selling or an expense account when purchasing. example: 80000001-1234567890 type: string maxLength: 36 updateExistingTransactionsAccount: description: >- When `true`, applies the new account (specified by the `accountId` field) to all existing transactions associated with this item. This updates historical data and should be used with caution. The update will fail if any affected transaction falls within a closed accounting period. If this parameter is not specified, QuickBooks will prompt the user before making any changes. example: false type: boolean additionalProperties: false salesAndPurchaseDetails: description: >- Details for service items that are both purchased and sold, such as reimbursable expenses or inventory items that are bought from vendors and sold to customers. **IMPORTANT**: You cannot specify both `salesAndPurchaseDetails` and `salesOrPurchaseDetails` when modifying a service item because an item cannot have both configurations. type: object properties: salesDescription: description: >- The description of this item that appears on sales forms (e.g., invoices, sales receipts) when sold to customers. example: High-quality steel bolts suitable for construction type: string salesPrice: description: >- The price at which this item is sold to customers, represented as a decimal string. example: '19.99' type: string incomeAccountId: description: >- The income account used to track revenue from sales of this item. example: 80000001-1234567890 type: string maxLength: 36 purchaseDescription: description: >- The description of this item that appears on purchase forms (e.g., checks, bills, item receipts) when it is ordered or bought from vendors. example: Bulk purchase of steel bolts for inventory type: string purchaseCost: description: >- The cost at which this item is purchased from vendors, represented as a decimal string. example: '15.75' type: string purchaseTaxCodeId: description: >- The tax code applied to purchases of this item. Applicable in regions where purchase taxes are used, such as Canada or the UK. example: 80000001-1234567890 type: string maxLength: 36 expenseAccountId: description: >- The expense account used to track costs from purchases of this item. example: 80000001-1234567890 type: string maxLength: 36 preferredVendorId: description: >- The preferred vendor from whom this item is typically purchased. example: 80000001-1234567890 type: string maxLength: 36 updateExistingTransactionsIncomeAccount: description: >- When `true`, applies the new income account (specified by the `incomeAccountId` field) to all existing transactions that use this item. This updates historical data and should be used with caution. The update will fail if any affected transaction falls within a closed accounting period. If this parameter is not specified, QuickBooks will prompt the user before making any changes. example: false type: boolean updateExistingTransactionsExpenseAccount: description: >- When `true`, applies the new expense account (specified by the `expenseAccountId` field) to all existing transactions that use this item. This updates historical data and should be used with caution. The update will fail if any affected transaction falls within a closed accounting period. If this parameter is not specified, QuickBooks will prompt the user before making any changes. example: false type: boolean additionalProperties: false required: - revisionNumber additionalProperties: false responses: '200': description: Returns the updated service item. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_service_item' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const serviceItem = await conductor.qbd.serviceItems.update('80000001-1234567890', { revisionNumber: '1721172183', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(serviceItem.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) service_item = conductor.qbd.service_items.update( id="80000001-1234567890", revision_number="1721172183", conductor_end_user_id="end_usr_1234567abcdefg", ) print(service_item.id) /quickbooks-desktop/shipping-methods: get: summary: List all shipping methods description: >- Returns a list of shipping methods. **NOTE:** QuickBooks Desktop does not support pagination for shipping methods; hence, there is no `cursor` parameter. Users typically have few shipping methods. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: query name: ids schema: description: >- Filter for specific shipping methods 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: - 80000001-1234567890 type: array items: type: string description: >- Filter for specific shipping methods 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. - in: query name: names schema: description: >- Filter for specific shipping methods by their name(s), case-insensitive. Like `id`, `name` is a unique identifier for a shipping method. **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: - FedEx Ground type: array items: type: string description: >- Filter for specific shipping methods by their name(s), case-insensitive. Like `id`, `name` is a unique identifier for a shipping method. **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. - in: query name: limit schema: description: >- The maximum number of objects to return. **IMPORTANT**: QuickBooks Desktop does not support cursor-based pagination for shipping methods. 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 shipping methods without limit, unlike paginated endpoints which default to 150 records. This is acceptable because shipping methods typically have low record counts. example: 10 type: integer minimum: 1 description: >- The maximum number of objects to return. **IMPORTANT**: QuickBooks Desktop does not support cursor-based pagination for shipping methods. 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 shipping methods without limit, unlike paginated endpoints which default to 150 records. This is acceptable because shipping methods typically have low record counts. - in: query name: status schema: description: Filter for shipping methods that are active, inactive, or both. example: active type: string enum: - active - all - inactive default: active description: Filter for shipping methods that are active, inactive, or both. - in: query name: updatedAfter schema: description: >- Filter for shipping methods 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. example: 2025-01-01T12:34:56.000Z type: string description: >- Filter for shipping methods 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. - in: query name: updatedBefore schema: description: >- Filter for shipping methods 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. example: 2025-02-01T12:34:56.000Z type: string description: >- Filter for shipping methods 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. - in: query name: nameContains schema: description: >- Filter for shipping methods whose `name` contains this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameStartsWith` or `nameEndsWith`. example: ABC type: string description: >- Filter for shipping methods whose `name` contains this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameStartsWith` or `nameEndsWith`. - in: query name: nameStartsWith schema: description: >- Filter for shipping methods whose `name` starts with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameEndsWith`. example: ABC type: string description: >- Filter for shipping methods whose `name` starts with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameEndsWith`. - in: query name: nameEndsWith schema: description: >- Filter for shipping methods whose `name` ends with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameStartsWith`. example: ABC type: string description: >- Filter for shipping methods whose `name` ends with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameStartsWith`. - in: query name: nameFrom schema: description: >- Filter for shipping methods whose `name` is alphabetically greater than or equal to this value. example: A type: string description: >- Filter for shipping methods whose `name` is alphabetically greater than or equal to this value. - in: query name: nameTo schema: description: >- Filter for shipping methods whose `name` is alphabetically less than or equal to this value. example: Z type: string description: >- Filter for shipping methods whose `name` is alphabetically less than or equal to this value. responses: '200': description: Returns a list of shipping methods. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: objectType: description: The type of object. This value is always `"list"`. example: list type: string const: list url: type: string description: The endpoint URL where this list can be accessed. example: /v1/quickbooks-desktop/shipping-methods data: type: array items: $ref: '#/components/schemas/qbd_shipping_method' description: The array of shipping methods. required: - objectType - url - data additionalProperties: false x-codeSamples: - lang: JavaScript source: |- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const shippingMethods = await conductor.qbd.shippingMethods.list({ conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(shippingMethods.data); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) shipping_methods = conductor.qbd.shipping_methods.list( conductor_end_user_id="end_usr_1234567abcdefg", ) print(shipping_methods.data) post: summary: Create a shipping method description: Creates a new shipping method. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. requestBody: required: true content: application/json: schema: type: object properties: name: type: string maxLength: 15 description: >- The case-insensitive unique name of this shipping method, unique across all shipping methods. **NOTE**: Shipping methods do not have a `fullName` field because they are not hierarchical objects, which is why `name` is unique for them but not for objects that have parents. Maximum length: 15 characters. example: FedEx Ground isActive: description: >- Indicates whether this shipping method is active. Inactive objects are typically hidden from views and reports in QuickBooks. Defaults to `true`. example: true default: true type: boolean required: - name additionalProperties: false responses: '200': description: Returns the newly created shipping method. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_shipping_method' x-codeSamples: - lang: JavaScript source: |- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const shippingMethod = await conductor.qbd.shippingMethods.create({ name: 'FedEx Ground', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(shippingMethod.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) shipping_method = conductor.qbd.shipping_methods.create( name="FedEx Ground", conductor_end_user_id="end_usr_1234567abcdefg", ) print(shipping_method.id) /quickbooks-desktop/shipping-methods/{id}: get: summary: Retrieve a shipping method description: >- Retrieves a shipping method by ID. **IMPORTANT:** If you need to fetch multiple specific shipping methods 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. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the shipping method to retrieve. example: 80000001-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the shipping method to retrieve. responses: '200': description: Returns the specified shipping method. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_shipping_method' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const shippingMethod = await conductor.qbd.shippingMethods.retrieve('80000001-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(shippingMethod.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) shipping_method = conductor.qbd.shipping_methods.retrieve( id="80000001-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(shipping_method.id) /quickbooks-desktop/standard-terms: get: summary: List all standard terms description: >- Returns a list of standard terms. **NOTE:** QuickBooks Desktop does not support pagination for standard terms; hence, there is no `cursor` parameter. Users typically have few standard terms. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: query name: ids schema: description: >- Filter for specific standard terms 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: - 80000001-1234567890 type: array items: type: string description: >- Filter for specific standard terms 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. - in: query name: names schema: description: >- Filter for specific standard terms by their name(s), case-insensitive. Like `id`, `name` is a unique identifier for a standard term. **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: - Net 30 type: array items: type: string description: >- Filter for specific standard terms by their name(s), case-insensitive. Like `id`, `name` is a unique identifier for a standard term. **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. - in: query name: limit schema: description: >- The maximum number of objects to return. **IMPORTANT**: QuickBooks Desktop does not support cursor-based pagination for standard terms. 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 standard terms without limit, unlike paginated endpoints which default to 150 records. This is acceptable because standard terms typically have low record counts. example: 10 type: integer minimum: 1 description: >- The maximum number of objects to return. **IMPORTANT**: QuickBooks Desktop does not support cursor-based pagination for standard terms. 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 standard terms without limit, unlike paginated endpoints which default to 150 records. This is acceptable because standard terms typically have low record counts. - in: query name: status schema: description: Filter for standard terms that are active, inactive, or both. example: active type: string enum: - active - all - inactive default: active description: Filter for standard terms that are active, inactive, or both. - in: query name: updatedAfter schema: description: >- Filter for standard terms 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. example: 2025-01-01T12:34:56.000Z type: string description: >- Filter for standard terms 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. - in: query name: updatedBefore schema: description: >- Filter for standard terms 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. example: 2025-02-01T12:34:56.000Z type: string description: >- Filter for standard terms 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. - in: query name: nameContains schema: description: >- Filter for standard terms whose `name` contains this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameStartsWith` or `nameEndsWith`. example: ABC type: string description: >- Filter for standard terms whose `name` contains this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameStartsWith` or `nameEndsWith`. - in: query name: nameStartsWith schema: description: >- Filter for standard terms whose `name` starts with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameEndsWith`. example: ABC type: string description: >- Filter for standard terms whose `name` starts with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameEndsWith`. - in: query name: nameEndsWith schema: description: >- Filter for standard terms whose `name` ends with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameStartsWith`. example: ABC type: string description: >- Filter for standard terms whose `name` ends with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameStartsWith`. - in: query name: nameFrom schema: description: >- Filter for standard terms whose `name` is alphabetically greater than or equal to this value. example: A type: string description: >- Filter for standard terms whose `name` is alphabetically greater than or equal to this value. - in: query name: nameTo schema: description: >- Filter for standard terms whose `name` is alphabetically less than or equal to this value. example: Z type: string description: >- Filter for standard terms whose `name` is alphabetically less than or equal to this value. responses: '200': description: Returns a list of standard terms. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: objectType: description: The type of object. This value is always `"list"`. example: list type: string const: list url: type: string description: The endpoint URL where this list can be accessed. example: /v1/quickbooks-desktop/standard-terms data: type: array items: $ref: '#/components/schemas/qbd_standard_term' description: The array of standard terms. required: - objectType - url - data additionalProperties: false x-codeSamples: - lang: JavaScript source: |- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const standardTerms = await conductor.qbd.standardTerms.list({ conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(standardTerms.data); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) standard_terms = conductor.qbd.standard_terms.list( conductor_end_user_id="end_usr_1234567abcdefg", ) print(standard_terms.data) post: summary: Create a standard term description: Creates a new standard term. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. requestBody: required: true content: application/json: schema: type: object properties: name: type: string maxLength: 31 description: >- The case-insensitive unique name of this standard term, unique across all standard terms. **NOTE**: Standard terms do not have a `fullName` field because they are not hierarchical objects, which is why `name` is unique for them but not for objects that have parents. Maximum length: 31 characters. example: Net 30 isActive: description: >- Indicates whether this standard term is active. Inactive objects are typically hidden from views and reports in QuickBooks. Defaults to `true`. example: true default: true type: boolean dueDays: description: The number of days until payment is due. example: 30 type: number discountDays: description: >- The number of days within which payment must be received to qualify for the discount specified by `discountPercentage`. example: 10 type: number discountPercentage: description: >- The discount percentage applied to the payment if received within the number of days specified by `discountDays`. The value is between 0 and 100. example: '10' type: string required: - name additionalProperties: false responses: '200': description: Returns the newly created standard term. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_standard_term' x-codeSamples: - lang: JavaScript source: |- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const standardTerm = await conductor.qbd.standardTerms.create({ name: 'Net 30', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(standardTerm.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) standard_term = conductor.qbd.standard_terms.create( name="Net 30", conductor_end_user_id="end_usr_1234567abcdefg", ) print(standard_term.id) /quickbooks-desktop/standard-terms/{id}: get: summary: Retrieve a standard term description: >- Retrieves a standard term by ID. **IMPORTANT:** If you need to fetch multiple specific standard terms 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. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the standard term to retrieve. example: 80000001-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the standard term to retrieve. responses: '200': description: Returns the specified standard term. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_standard_term' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const standardTerm = await conductor.qbd.standardTerms.retrieve('80000001-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(standardTerm.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) standard_term = conductor.qbd.standard_terms.retrieve( id="80000001-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(standard_term.id) /quickbooks-desktop/subtotal-items: get: summary: List all subtotal items description: >- Returns a list of subtotal items. Use the `cursor` parameter to paginate through the results. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: query name: ids schema: description: >- Filter for specific subtotal items 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: - 80000001-1234567890 type: array items: type: string description: >- Filter for specific subtotal items 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. - in: query name: names schema: description: >- Filter for specific subtotal items by their name(s), case-insensitive. Like `id`, `name` is a unique identifier for a subtotal item. **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: - Labor subtotal type: array items: type: string description: >- Filter for specific subtotal items by their name(s), case-insensitive. Like `id`, `name` is a unique identifier for a subtotal item. **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. - in: query name: limit schema: default: 150 description: >- 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. example: 150 type: integer minimum: 1 maximum: 150 description: >- 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. - in: query name: cursor schema: description: >- 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 type: string description: >- 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. - in: query name: status schema: description: Filter for subtotal items that are active, inactive, or both. example: active type: string enum: - active - all - inactive default: active description: Filter for subtotal items that are active, inactive, or both. - in: query name: updatedAfter schema: description: >- Filter for subtotal items 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. example: 2025-01-01T12:34:56.000Z type: string description: >- Filter for subtotal items 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. - in: query name: updatedBefore schema: description: >- Filter for subtotal items 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. example: 2025-02-01T12:34:56.000Z type: string description: >- Filter for subtotal items 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. - in: query name: nameContains schema: description: >- Filter for subtotal items whose `name` contains this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameStartsWith` or `nameEndsWith`. example: ABC type: string description: >- Filter for subtotal items whose `name` contains this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameStartsWith` or `nameEndsWith`. - in: query name: nameStartsWith schema: description: >- Filter for subtotal items whose `name` starts with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameEndsWith`. example: ABC type: string description: >- Filter for subtotal items whose `name` starts with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameEndsWith`. - in: query name: nameEndsWith schema: description: >- Filter for subtotal items whose `name` ends with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameStartsWith`. example: ABC type: string description: >- Filter for subtotal items whose `name` ends with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameStartsWith`. - in: query name: nameFrom schema: description: >- Filter for subtotal items whose `name` is alphabetically greater than or equal to this value. example: A type: string description: >- Filter for subtotal items whose `name` is alphabetically greater than or equal to this value. - in: query name: nameTo schema: description: >- Filter for subtotal items whose `name` is alphabetically less than or equal to this value. example: Z type: string description: >- Filter for subtotal items whose `name` is alphabetically less than or equal to this value. responses: '200': description: Returns a list of subtotal items. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: objectType: description: The type of object. This value is always `"list"`. example: list type: string const: list url: type: string description: The endpoint URL where this list can be accessed. example: /v1/quickbooks-desktop/subtotal-items data: type: array items: $ref: '#/components/schemas/qbd_subtotal_item' description: The array of subtotal items. nextCursor: anyOf: - type: string - type: 'null' description: >- The `nextCursor` is a pagination token returned in the response when you use the `limit` parameter in your request. To retrieve subsequent pages of results, include this token as the value of the `cursor` request parameter in your following API calls. **NOTE**: The `nextCursor` value remains constant throughout the pagination process for a specific list instance; continue to use the same `nextCursor` token in each request to fetch additional pages. example: 12345678-abcd-abcd-example-1234567890ab remainingCount: anyOf: - type: number - type: 'null' description: The number of objects remaining to be fetched. example: 10 hasMore: type: boolean description: Indicates whether there are more objects to be fetched. required: - objectType - url - data - nextCursor - remainingCount - hasMore additionalProperties: false x-codeSamples: - lang: JavaScript source: |- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); // Automatically fetches more pages as needed. for await (const subtotalItem of conductor.qbd.subtotalItems.list({ conductorEndUserId: 'end_usr_1234567abcdefg', })) { console.log(subtotalItem.id); } - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) page = conductor.qbd.subtotal_items.list( conductor_end_user_id="end_usr_1234567abcdefg", ) page = page.data[0] print(page.id) post: summary: Create a subtotal item description: Creates a new subtotal item. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. requestBody: required: true content: application/json: schema: type: object properties: name: type: string maxLength: 31 description: >- The case-insensitive unique name of this subtotal item, unique across all subtotal items. **NOTE**: Subtotal items do not have a `fullName` field because they are not hierarchical objects, which is why `name` is unique for them but not for objects that have parents. Maximum length: 31 characters. example: Labor subtotal barcode: description: The subtotal item's barcode. type: object properties: value: description: The item's barcode value. example: '012345678905' type: string assignEvenIfUsed: description: >- Indicates whether to assign the barcode even if it is already used. example: false default: false type: boolean allowOverride: description: Indicates whether to allow the barcode to be overridden. example: false default: false type: boolean additionalProperties: false isActive: description: >- Indicates whether this subtotal item is active. Inactive objects are typically hidden from views and reports in QuickBooks. Defaults to `true`. example: true default: true type: boolean description: description: >- The subtotal item's description that will appear on sales forms that include this item. example: Subtotal for all labor costs on this project type: string externalId: type: string format: uuid description: >- 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. **IMPORTANT**: This field must be formatted as a valid GUID; otherwise, QuickBooks will return an error. example: 12345678-abcd-1234-abcd-1234567890ab required: - name additionalProperties: false responses: '200': description: Returns the newly created subtotal item. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_subtotal_item' x-codeSamples: - lang: JavaScript source: |- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const subtotalItem = await conductor.qbd.subtotalItems.create({ name: 'Labor subtotal', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(subtotalItem.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) subtotal_item = conductor.qbd.subtotal_items.create( name="Labor subtotal", conductor_end_user_id="end_usr_1234567abcdefg", ) print(subtotal_item.id) /quickbooks-desktop/subtotal-items/{id}: get: summary: Retrieve a subtotal item description: >- Retrieves a subtotal item by ID. **IMPORTANT:** If you need to fetch multiple specific subtotal items 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. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the subtotal item to retrieve. example: 80000001-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the subtotal item to retrieve. responses: '200': description: Returns the specified subtotal item. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_subtotal_item' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const subtotalItem = await conductor.qbd.subtotalItems.retrieve('80000001-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(subtotalItem.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) subtotal_item = conductor.qbd.subtotal_items.retrieve( id="80000001-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(subtotal_item.id) post: summary: Update a subtotal item description: Updates an existing subtotal item. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the subtotal item to update. example: 80000001-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the subtotal item to update. requestBody: required: true content: application/json: schema: type: object properties: revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of the subtotal item 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. example: '1721172183' name: description: >- The case-insensitive unique name of this subtotal item, unique across all subtotal items. **NOTE**: Subtotal items do not have a `fullName` field because they are not hierarchical objects, which is why `name` is unique for them but not for objects that have parents. Maximum length: 31 characters. example: Labor subtotal type: string maxLength: 31 barcode: description: The subtotal item's barcode. type: object properties: value: description: The item's barcode value. example: '012345678905' type: string assignEvenIfUsed: description: >- Indicates whether to assign the barcode even if it is already used. example: false default: false type: boolean allowOverride: description: Indicates whether to allow the barcode to be overridden. example: false default: false type: boolean additionalProperties: false isActive: description: >- Indicates whether this subtotal item is active. Inactive objects are typically hidden from views and reports in QuickBooks. Defaults to `true`. example: true type: boolean description: description: >- The subtotal item's description that will appear on sales forms that include this item. example: Subtotal for all labor costs on this project type: string required: - revisionNumber additionalProperties: false responses: '200': description: Returns the updated subtotal item. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_subtotal_item' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const subtotalItem = await conductor.qbd.subtotalItems.update('80000001-1234567890', { revisionNumber: '1721172183', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(subtotalItem.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) subtotal_item = conductor.qbd.subtotal_items.update( id="80000001-1234567890", revision_number="1721172183", conductor_end_user_id="end_usr_1234567abcdefg", ) print(subtotal_item.id) /quickbooks-desktop/templates: get: summary: List all templates description: >- Returns a list of templates. Use the `cursor` parameter to paginate through the results. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. responses: '200': description: Returns a list of templates. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: objectType: description: The type of object. This value is always `"list"`. example: list type: string const: list url: type: string description: The endpoint URL where this list can be accessed. example: /v1/quickbooks-desktop/templates data: type: array items: $ref: '#/components/schemas/qbd_template' description: The array of templates. nextCursor: anyOf: - type: string - type: 'null' description: >- The `nextCursor` is a pagination token returned in the response when you use the `limit` parameter in your request. To retrieve subsequent pages of results, include this token as the value of the `cursor` request parameter in your following API calls. **NOTE**: The `nextCursor` value remains constant throughout the pagination process for a specific list instance; continue to use the same `nextCursor` token in each request to fetch additional pages. example: 12345678-abcd-abcd-example-1234567890ab remainingCount: anyOf: - type: number - type: 'null' description: The number of objects remaining to be fetched. example: 10 hasMore: type: boolean description: Indicates whether there are more objects to be fetched. required: - objectType - url - data - nextCursor - remainingCount - hasMore additionalProperties: false x-codeSamples: - lang: JavaScript source: |- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const templates = await conductor.qbd.templates.list({ conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(templates.data); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) templates = conductor.qbd.templates.list( conductor_end_user_id="end_usr_1234567abcdefg", ) print(templates.data) /quickbooks-desktop/time-tracking-activities: get: summary: List all time tracking activities description: >- Returns a list of time tracking activities. Use the `cursor` parameter to paginate through the results. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: query name: ids schema: description: >- Filter for specific time tracking activities 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 type: array items: type: string description: >- Filter for specific time tracking activities 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. - in: query name: limit schema: default: 150 description: >- 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. example: 150 type: integer minimum: 1 maximum: 150 description: >- 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. - in: query name: cursor schema: description: >- 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 type: string description: >- 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. - in: query name: updatedAfter schema: description: >- Filter for time tracking activities 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. example: 2025-01-01T12:34:56.000Z type: string description: >- Filter for time tracking activities 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. - in: query name: updatedBefore schema: description: >- Filter for time tracking activities 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. example: 2025-02-01T12:34:56.000Z type: string description: >- Filter for time tracking activities 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. - in: query name: transactionDateFrom schema: description: >- Filter for time tracking activities 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-01` → `2025-01-01T00:00:00`). example: '2025-01-01' type: string format: date description: >- Filter for time tracking activities 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-01` → `2025-01-01T00:00:00`). - in: query name: transactionDateTo schema: description: >- Filter for time tracking activities 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-01` → `2025-01-01T23:59:59`). example: '2025-02-01' type: string format: date description: >- Filter for time tracking activities 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-01` → `2025-01-01T23:59:59`). - in: query name: entityIds schema: description: >- Filter for time tracking activities tracking the time of these employees, vendors, or persons on QuickBooks's "Other Names" list. example: - 80000001-1234567890 type: array items: type: string description: >- Filter for time tracking activities tracking the time of these employees, vendors, or persons on QuickBooks's "Other Names" list. responses: '200': description: Returns a list of time tracking activities. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: objectType: description: The type of object. This value is always `"list"`. example: list type: string const: list url: type: string description: The endpoint URL where this list can be accessed. example: /v1/quickbooks-desktop/time-tracking-activities data: type: array items: $ref: '#/components/schemas/qbd_time_tracking_activity' description: The array of time tracking activities. nextCursor: anyOf: - type: string - type: 'null' description: >- The `nextCursor` is a pagination token returned in the response when you use the `limit` parameter in your request. To retrieve subsequent pages of results, include this token as the value of the `cursor` request parameter in your following API calls. **NOTE**: The `nextCursor` value remains constant throughout the pagination process for a specific list instance; continue to use the same `nextCursor` token in each request to fetch additional pages. example: 12345678-abcd-abcd-example-1234567890ab remainingCount: anyOf: - type: number - type: 'null' description: The number of objects remaining to be fetched. example: 10 hasMore: type: boolean description: Indicates whether there are more objects to be fetched. required: - objectType - url - data - nextCursor - remainingCount - hasMore additionalProperties: false x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); // Automatically fetches more pages as needed. for await (const timeTrackingActivity of conductor.qbd.timeTrackingActivities.list({ conductorEndUserId: 'end_usr_1234567abcdefg', })) { console.log(timeTrackingActivity.id); } - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) page = conductor.qbd.time_tracking_activities.list( conductor_end_user_id="end_usr_1234567abcdefg", ) page = page.data[0] print(page.id) post: summary: Create a time tracking activity description: Creates a new time tracking activity. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. requestBody: required: true content: application/json: schema: type: object properties: transactionDate: type: string format: date description: >- The date of this time tracking activity, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-01' entityId: description: >- The employee, vendor, or person on QuickBooks's "Other Names" list whose time is being tracked in this time tracking activity. This cannot refer to a customer - use the `customer` field to associate a customer or customer-job with this time tracking activity. example: 80000001-1234567890 type: string maxLength: 36 customerId: description: >- The customer or customer-job to which this time tracking activity could be billed. If `billingStatus` is set to "billable", this field is required. example: 80000001-1234567890 type: string maxLength: 36 serviceItemId: description: >- The type of service performed during this time tracking activity, referring to billable or purchasable services such as specialized labor, consulting hours, and professional fees. **NOTE**: This field is not required if no `customer` is specified. However, if `billingStatus` is set to "billable", both this field and `customer` are required. example: 80000001-1234567890 type: string maxLength: 36 duration: type: string description: >- The time spent performing the service during this time tracking activity, in ISO 8601 format for time intervals (PTnHnMnS). For example, 1 hour and 30 minutes is represented as PT1H30M. **NOTE**: Although seconds can be specified when creating a time tracking activity, they are not returned in responses since QuickBooks Desktop's UI does not display seconds. **IMPORTANT**: This field is required for updating time tracking activities, even if the field is not being modified, because of a bug in QuickBooks itself. Must use QuickBooks Desktop's ISO 8601 time interval format (for example, "PT1H30M" represents 1 hour and 30 minutes). example: PT1H30M classId: description: >- The time tracking activity'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. example: 80000001-1234567890 type: string maxLength: 36 payrollWageItemId: description: >- The payroll wage item (e.g., Regular Pay, Overtime Pay) to use for this time tracking activity. This field can only be used for time tracking if: (1) the person specified in `entity` is an employee in QuickBooks, and (2) the "Use time data to create paychecks" preference is enabled in their payroll settings. example: 80000001-1234567890 type: string maxLength: 36 note: description: A note or comment about this time tracking activity. example: Project planning meeting with client. type: string billingStatus: description: >- The billing status of this time tracking activity. **IMPORTANT**: When this field is set to "billable" for time tracking activities, both `customer` and `serviceItem` are required so that an invoice can be created. example: billable type: string enum: - billable - has_been_billed - not_billable default: billable externalId: type: string format: uuid description: >- 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. **IMPORTANT**: This field must be formatted as a valid GUID; otherwise, QuickBooks will return an error. example: 12345678-abcd-1234-abcd-1234567890ab required: - transactionDate - entityId - duration additionalProperties: false responses: '200': description: Returns the newly created time tracking activity. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_time_tracking_activity' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const timeTrackingActivity = await conductor.qbd.timeTrackingActivities.create({ duration: 'PT1H30M', entityId: '80000001-1234567890', transactionDate: '2024-10-01', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(timeTrackingActivity.id); - lang: Python source: >- import os from datetime import date from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) time_tracking_activity = conductor.qbd.time_tracking_activities.create( duration="PT1H30M", entity_id="80000001-1234567890", transaction_date=date.fromisoformat("2024-10-01"), conductor_end_user_id="end_usr_1234567abcdefg", ) print(time_tracking_activity.id) /quickbooks-desktop/time-tracking-activities/{id}: get: summary: Retrieve a time tracking activity description: >- Retrieves a time tracking activity by ID. **IMPORTANT:** If you need to fetch multiple specific time tracking activities 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. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the time tracking activity to retrieve. example: 123ABC-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the time tracking activity to retrieve. responses: '200': description: Returns the specified time tracking activity. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_time_tracking_activity' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const timeTrackingActivity = await conductor.qbd.timeTrackingActivities.retrieve( '123ABC-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg' }, ); console.log(timeTrackingActivity.id); - lang: Python source: >- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) time_tracking_activity = conductor.qbd.time_tracking_activities.retrieve( id="123ABC-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(time_tracking_activity.id) post: summary: Update a time tracking activity description: Updates an existing time tracking activity. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the time tracking activity to update. example: 123ABC-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the time tracking activity to update. requestBody: required: true content: application/json: schema: type: object properties: revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of the time tracking activity 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. example: '1721172183' transactionDate: description: >- The date of this time tracking activity, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-01' type: string format: date entityId: description: >- The employee, vendor, or person on QuickBooks's "Other Names" list whose time is being tracked in this time tracking activity. This cannot refer to a customer - use the `customer` field to associate a customer or customer-job with this time tracking activity. **IMPORTANT**: This field is required for updating time tracking activities, even if the field is not being modified, because of a bug in QuickBooks itself. example: 80000001-1234567890 type: string maxLength: 36 customerId: description: >- The customer or customer-job to which this time tracking activity could be billed. If `billingStatus` is set to "billable", this field is required. example: 80000001-1234567890 type: string maxLength: 36 serviceItemId: description: >- The type of service performed during this time tracking activity, referring to billable or purchasable services such as specialized labor, consulting hours, and professional fees. **NOTE**: This field is not required if no `customer` is specified. However, if `billingStatus` is set to "billable", both this field and `customer` are required. example: 80000001-1234567890 type: string maxLength: 36 duration: type: string description: >- The time spent performing the service during this time tracking activity, in ISO 8601 format for time intervals (PTnHnMnS). For example, 1 hour and 30 minutes is represented as PT1H30M. **NOTE**: Although seconds can be specified when creating a time tracking activity, they are not returned in responses since QuickBooks Desktop's UI does not display seconds. **IMPORTANT**: This field is required for updating time tracking activities, even if the field is not being modified, because of a bug in QuickBooks itself. Must use QuickBooks Desktop's ISO 8601 time interval format (for example, "PT1H30M" represents 1 hour and 30 minutes). example: PT1H30M classId: description: >- The time tracking activity'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. example: 80000001-1234567890 type: string maxLength: 36 payrollWageItemId: description: >- The payroll wage item (e.g., Regular Pay, Overtime Pay) to use for this time tracking activity. This field can only be used for time tracking if: (1) the person specified in `entity` is an employee in QuickBooks, and (2) the "Use time data to create paychecks" preference is enabled in their payroll settings. example: 80000001-1234567890 type: string maxLength: 36 note: description: A note or comment about this time tracking activity. example: Project planning meeting with client. type: string billingStatus: description: >- The billing status of this time tracking activity. **IMPORTANT**: When this field is set to "billable" for time tracking activities, both `customer` and `serviceItem` are required so that an invoice can be created. example: billable type: string enum: - billable - has_been_billed - not_billable required: - revisionNumber - entityId - duration additionalProperties: false responses: '200': description: Returns the updated time tracking activity. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_time_tracking_activity' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const timeTrackingActivity = await conductor.qbd.timeTrackingActivities.update( '123ABC-1234567890', { duration: 'PT1H30M', entityId: '80000001-1234567890', revisionNumber: '1721172183', conductorEndUserId: 'end_usr_1234567abcdefg', }, ); console.log(timeTrackingActivity.id); - lang: Python source: >- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) time_tracking_activity = conductor.qbd.time_tracking_activities.update( id="123ABC-1234567890", duration="PT1H30M", entity_id="80000001-1234567890", revision_number="1721172183", conductor_end_user_id="end_usr_1234567abcdefg", ) print(time_tracking_activity.id) delete: summary: Delete a time tracking activity description: >- Permanently deletes a time tracking activity. The deletion will fail if the time tracking activity is currently in use or has any linked transactions that are in use. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the time tracking activity to delete. example: 123ABC-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the time tracking activity to delete. responses: '200': description: >- Returns a confirmation of the deletion with the ID of the deleted time tracking activity. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: id: type: string description: >- The QuickBooks-assigned unique identifier of the deleted time tracking activity. example: 123ABC-1234567890 objectType: description: >- The type of object. This value is always `"qbd_time_tracking_activity"`. example: qbd_time_tracking_activity type: string const: qbd_time_tracking_activity deleted: type: boolean description: Indicates whether the time tracking activity was deleted. example: true required: - id - objectType - deleted additionalProperties: false x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const timeTrackingActivity = await conductor.qbd.timeTrackingActivities.delete( '123ABC-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg' }, ); console.log(timeTrackingActivity.id); - lang: Python source: >- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) time_tracking_activity = conductor.qbd.time_tracking_activities.delete( id="123ABC-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(time_tracking_activity.id) /quickbooks-desktop/transactions: get: summary: List all transactions description: >- Searches across all transaction types. Unlike transaction-specific queries, this endpoint only returns fields common to all transaction types, such as ID, type, dates, account, and reference numbers. For more details specific to that transaction type, make a subsequent call to the relevant transaction-specific endpoint (such as invoices, bills, etc.). NOTE: This endpoint does not support time tracking activities. Use the `cursor` parameter to paginate through the results. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: query name: ids schema: description: >- Filter for specific transactions 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. **NOTE**: You cannot supply the ID of a time tracking activity to this request. If you do, you get an error stating that no such record could be found, even though the transaction is in QuickBooks. This limitation is enforced by QuickBooks. example: - 123ABC-1234567890 type: array items: type: string description: >- Filter for specific transactions 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. **NOTE**: You cannot supply the ID of a time tracking activity to this request. If you do, you get an error stating that no such record could be found, even though the transaction is in QuickBooks. This limitation is enforced by QuickBooks. - in: query name: limit schema: default: 150 description: >- 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. example: 150 type: integer minimum: 1 maximum: 150 description: >- 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. - in: query name: cursor schema: description: >- 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 type: string description: >- 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. - in: query name: refNumbers schema: description: >- Filter for specific transactions 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: - TRANSACTION-1234 type: array items: type: string description: >- Filter for specific transactions 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. - in: query name: refNumberContains schema: description: >- Filter for transactions whose `refNumber` contains this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberStartsWith` or `refNumberEndsWith`. example: INV-1234 type: string description: >- Filter for transactions whose `refNumber` contains this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberStartsWith` or `refNumberEndsWith`. - in: query name: refNumberStartsWith schema: description: >- Filter for transactions whose `refNumber` starts with this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberContains` or `refNumberEndsWith`. example: INV type: string description: >- Filter for transactions whose `refNumber` starts with this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberContains` or `refNumberEndsWith`. - in: query name: refNumberEndsWith schema: description: >- Filter for transactions whose `refNumber` ends with this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberContains` or `refNumberStartsWith`. example: '1234' type: string description: >- Filter for transactions whose `refNumber` ends with this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberContains` or `refNumberStartsWith`. - in: query name: refNumberFrom schema: description: >- Filter for transactions 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: INV-0001 type: string description: >- Filter for transactions 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. - in: query name: refNumberTo schema: description: >- Filter for transactions 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: INV-9999 type: string description: >- Filter for transactions 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. - in: query name: updatedAfter schema: description: >- Filter for transactions 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. example: 2025-01-01T12:34:56.000Z type: string description: >- Filter for transactions 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. - in: query name: updatedBefore schema: description: >- Filter for transactions 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. example: 2025-02-01T12:34:56.000Z type: string description: >- Filter for transactions 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. - in: query name: transactionDateFrom schema: description: >- Filter for transactions 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-01` → `2025-01-01T00:00:00`). example: '2025-01-01' type: string format: date description: >- Filter for transactions 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-01` → `2025-01-01T00:00:00`). - in: query name: transactionDateTo schema: description: >- Filter for transactions 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-01` → `2025-01-01T23:59:59`). example: '2025-02-01' type: string format: date description: >- Filter for transactions 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-01` → `2025-01-01T23:59:59`). - in: query name: entityIds schema: description: >- Filter for transactions associated with these entities (customers, vendors, employees, etc.). **NOTE**: To filter on transaction lines, you must specify the `transactionDetailLevel` parameter as `all` or `transaction_lines_only`. example: - 80000001-1234567890 type: array items: type: string description: >- Filter for transactions associated with these entities (customers, vendors, employees, etc.). **NOTE**: To filter on transaction lines, you must specify the `transactionDetailLevel` parameter as `all` or `transaction_lines_only`. - in: query name: accountIds schema: description: >- Filter for transactions associated with these accounts. **NOTE**: To filter on transaction lines, you must specify the `transactionDetailLevel` parameter as `all` or `transaction_lines_only`. example: - 80000001-1234567890 type: array items: type: string description: >- Filter for transactions associated with these accounts. **NOTE**: To filter on transaction lines, you must specify the `transactionDetailLevel` parameter as `all` or `transaction_lines_only`. - in: query name: itemIds schema: description: >- Filter for transactions associated with these items. **NOTE**: To filter on transaction lines, you must specify the `transactionDetailLevel` parameter as `all` or `transaction_lines_only`. example: - 80000001-1234567890 type: array items: type: string description: >- Filter for transactions associated with these items. **NOTE**: To filter on transaction lines, you must specify the `transactionDetailLevel` parameter as `all` or `transaction_lines_only`. - in: query name: classIds schema: description: >- Filter for transactions of these classes. A class is a way end-users can categorize transactions in QuickBooks. **NOTE**: To filter on transaction lines, you must specify the `transactionDetailLevel` parameter as `all` or `transaction_lines_only`. example: - 80000001-1234567890 type: array items: type: string description: >- Filter for transactions of these classes. A class is a way end-users can categorize transactions in QuickBooks. **NOTE**: To filter on transaction lines, you must specify the `transactionDetailLevel` parameter as `all` or `transaction_lines_only`. - in: query name: transactionTypes schema: description: >- Filter for transactions by their transaction type(s). **NOTE**: Filtering for time tracking activities is not supported by QuickBooks for this endpoint. example: - invoice type: array items: type: string enum: - all - 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 description: >- Filter for transactions by their transaction type(s). **NOTE**: Filtering for time tracking activities is not supported by QuickBooks for this endpoint. - in: query name: detailLevel schema: description: >- Specify whether to return all matching transaction and transaction-line objects (`all`), only transaction objects (`transactions_without_lines`, the default), or only transaction-line objects (`transaction_lines_only`. example: transactions_without_lines type: string enum: - all - transaction_lines_only - transactions_without_lines default: transactions_without_lines description: >- Specify whether to return all matching transaction and transaction-line objects (`all`), only transaction objects (`transactions_without_lines`, the default), or only transaction-line objects (`transaction_lines_only`. - in: query name: postingStatus schema: description: >- Filter for transactions that are posting, non-posting, or either. Posting status refers to whether QuickBooks records the transaction in an account register. example: posting type: string enum: - either - non_posting - posting default: either description: >- Filter for transactions that are posting, non-posting, or either. Posting status refers to whether QuickBooks records the transaction in an account register. - in: query name: paymentStatus schema: description: >- Filter for transactions that are open, closed, or either. Open transactions have a remaining balance, such as credits not fully applied or invoices not fully paid. example: open type: string enum: - closed - either - open default: either description: >- Filter for transactions that are open, closed, or either. Open transactions have a remaining balance, such as credits not fully applied or invoices not fully paid. - in: query name: currencyIds schema: description: Filter for transactions in these currencies. example: - 80000001-1234567890 type: array items: type: string description: Filter for transactions in these currencies. responses: '200': description: Returns a list of transactions. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: objectType: description: The type of object. This value is always `"list"`. example: list type: string const: list url: type: string description: The endpoint URL where this list can be accessed. example: /v1/quickbooks-desktop/transactions data: type: array items: $ref: '#/components/schemas/qbd_transaction' description: The array of transactions. nextCursor: anyOf: - type: string - type: 'null' description: >- The `nextCursor` is a pagination token returned in the response when you use the `limit` parameter in your request. To retrieve subsequent pages of results, include this token as the value of the `cursor` request parameter in your following API calls. **NOTE**: The `nextCursor` value remains constant throughout the pagination process for a specific list instance; continue to use the same `nextCursor` token in each request to fetch additional pages. example: 12345678-abcd-abcd-example-1234567890ab remainingCount: anyOf: - type: number - type: 'null' description: The number of objects remaining to be fetched. example: 10 hasMore: type: boolean description: Indicates whether there are more objects to be fetched. required: - objectType - url - data - nextCursor - remainingCount - hasMore additionalProperties: false x-codeSamples: - lang: JavaScript source: |- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); // Automatically fetches more pages as needed. for await (const transaction of conductor.qbd.transactions.list({ conductorEndUserId: 'end_usr_1234567abcdefg', })) { console.log(transaction.account); } - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) page = conductor.qbd.transactions.list( conductor_end_user_id="end_usr_1234567abcdefg", ) page = page.data[0] print(page.account) /quickbooks-desktop/transactions/{id}: get: summary: Retrieve a transaction description: >- Retrieves a transaction by ID. **IMPORTANT:** If you need to fetch multiple specific transactions 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. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the transaction to retrieve. example: 123ABC-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the transaction to retrieve. responses: '200': description: Returns the specified transaction. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_transaction' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const transaction = await conductor.qbd.transactions.retrieve('123ABC-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(transaction.account); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) transaction = conductor.qbd.transactions.retrieve( id="123ABC-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(transaction.account) /quickbooks-desktop/transfers: get: summary: List all transfers description: >- Returns a list of transfers. Use the `cursor` parameter to paginate through the results. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: query name: ids schema: description: >- Filter for specific transfers 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 type: array items: type: string description: >- Filter for specific transfers 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. - in: query name: limit schema: default: 150 description: >- 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. example: 150 type: integer minimum: 1 maximum: 150 description: >- 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. - in: query name: cursor schema: description: >- 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 type: string description: >- 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. - in: query name: updatedAfter schema: description: >- Filter for transfers 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. example: 2025-01-01T12:34:56.000Z type: string description: >- Filter for transfers 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. - in: query name: updatedBefore schema: description: >- Filter for transfers 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. example: 2025-02-01T12:34:56.000Z type: string description: >- Filter for transfers 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. - in: query name: transactionDateFrom schema: description: >- Filter for transfers 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-01` → `2025-01-01T00:00:00`). example: '2025-01-01' type: string format: date description: >- Filter for transfers 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-01` → `2025-01-01T00:00:00`). - in: query name: transactionDateTo schema: description: >- Filter for transfers 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-01` → `2025-01-01T23:59:59`). example: '2025-02-01' type: string format: date description: >- Filter for transfers 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-01` → `2025-01-01T23:59:59`). responses: '200': description: Returns a list of transfers. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: objectType: description: The type of object. This value is always `"list"`. example: list type: string const: list url: type: string description: The endpoint URL where this list can be accessed. example: /v1/quickbooks-desktop/transfers data: type: array items: $ref: '#/components/schemas/qbd_transfer' description: The array of transfers. nextCursor: anyOf: - type: string - type: 'null' description: >- The `nextCursor` is a pagination token returned in the response when you use the `limit` parameter in your request. To retrieve subsequent pages of results, include this token as the value of the `cursor` request parameter in your following API calls. **NOTE**: The `nextCursor` value remains constant throughout the pagination process for a specific list instance; continue to use the same `nextCursor` token in each request to fetch additional pages. example: 12345678-abcd-abcd-example-1234567890ab remainingCount: anyOf: - type: number - type: 'null' description: The number of objects remaining to be fetched. example: 10 hasMore: type: boolean description: Indicates whether there are more objects to be fetched. required: - objectType - url - data - nextCursor - remainingCount - hasMore additionalProperties: false x-codeSamples: - lang: JavaScript source: |- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); // Automatically fetches more pages as needed. for await (const transfer of conductor.qbd.transfers.list({ conductorEndUserId: 'end_usr_1234567abcdefg', })) { console.log(transfer.id); } - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) page = conductor.qbd.transfers.list( conductor_end_user_id="end_usr_1234567abcdefg", ) page = page.data[0] print(page.id) post: summary: Create a transfer description: Creates a new transfer. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. requestBody: required: true content: application/json: schema: type: object properties: transactionDate: type: string format: date description: The date of this transfer, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-01' sourceAccountId: description: The account from which money will be transferred. example: 80000001-1234567890 type: string maxLength: 36 targetAccountId: description: The account to which money will be transferred. example: 80000001-1234567890 type: string maxLength: 36 classId: description: >- The transfer'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. example: 80000001-1234567890 type: string maxLength: 36 amount: type: string description: >- The monetary amount of this transfer, represented as a decimal string. Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45"). example: '1000.00' memo: description: A memo or note for this transfer. example: Monthly transfer to savings type: string required: - transactionDate - sourceAccountId - targetAccountId - amount additionalProperties: false responses: '200': description: Returns the newly created transfer. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_transfer' x-codeSamples: - lang: JavaScript source: |- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const transfer = await conductor.qbd.transfers.create({ amount: '1000.00', sourceAccountId: '80000001-1234567890', targetAccountId: '80000001-1234567890', transactionDate: '2024-10-01', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(transfer.id); - lang: Python source: |- import os from datetime import date from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) transfer = conductor.qbd.transfers.create( amount="1000.00", source_account_id="80000001-1234567890", target_account_id="80000001-1234567890", transaction_date=date.fromisoformat("2024-10-01"), conductor_end_user_id="end_usr_1234567abcdefg", ) print(transfer.id) /quickbooks-desktop/transfers/{id}: get: summary: Retrieve a transfer description: >- Retrieves a transfer by ID. **IMPORTANT:** If you need to fetch multiple specific transfers 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. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the transfer to retrieve. example: 123ABC-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the transfer to retrieve. responses: '200': description: Returns the specified transfer. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_transfer' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const transfer = await conductor.qbd.transfers.retrieve('123ABC-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(transfer.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) transfer = conductor.qbd.transfers.retrieve( id="123ABC-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(transfer.id) post: summary: Update a transfer description: Updates an existing transfer. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the transfer to update. example: 123ABC-1234567890 required: true description: The QuickBooks-assigned unique identifier of the transfer to update. requestBody: required: true content: application/json: schema: type: object properties: revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of the transfer 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. example: '1721172183' transactionDate: description: The date of this transfer, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-01' type: string format: date sourceAccountId: description: The account from which money will be transferred. example: 80000001-1234567890 type: string maxLength: 36 targetAccountId: description: The account to which money will be transferred. example: 80000001-1234567890 type: string maxLength: 36 classId: description: >- The transfer'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. example: 80000001-1234567890 type: string maxLength: 36 amount: description: >- The monetary amount of this transfer, represented as a decimal string. Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45"). example: '1000.00' type: string memo: description: A memo or note for this transfer. example: Monthly transfer to savings type: string required: - revisionNumber additionalProperties: false responses: '200': description: Returns the updated transfer. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_transfer' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const transfer = await conductor.qbd.transfers.update('123ABC-1234567890', { revisionNumber: '1721172183', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(transfer.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) transfer = conductor.qbd.transfers.update( id="123ABC-1234567890", revision_number="1721172183", conductor_end_user_id="end_usr_1234567abcdefg", ) print(transfer.id) /quickbooks-desktop/unit-of-measure-sets: get: summary: List all unit-of-measure sets description: >- Lists all unit-of-measure sets. NOTE: QuickBooks Desktop does not support pagination for unit-of-measure sets; hence, there is no cursor parameter. Users typically have few unit-of-measure sets. NOTE: The QuickBooks company file must have unit-of-measure enabled (either a single unit per item or multiple units per item). **NOTE:** QuickBooks Desktop does not support pagination for unit-of-measure sets; hence, there is no `cursor` parameter. Users typically have few unit-of-measure sets. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: query name: ids schema: description: >- Filter for specific unit-of-measure sets 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: - 80000001-1234567890 type: array items: type: string description: >- Filter for specific unit-of-measure sets 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. - in: query name: names schema: description: >- Filter for specific unit-of-measure sets by their name(s), case-insensitive. Like `id`, `name` is a unique identifier for an unit-of-measure set. **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: - Weight Units type: array items: type: string description: >- Filter for specific unit-of-measure sets by their name(s), case-insensitive. Like `id`, `name` is a unique identifier for an unit-of-measure set. **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. - in: query name: limit schema: description: >- The maximum number of objects to return. **IMPORTANT**: QuickBooks Desktop does not support cursor-based pagination for unit-of-measure sets. 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 unit-of-measure sets without limit, unlike paginated endpoints which default to 150 records. This is acceptable because unit-of-measure sets typically have low record counts. example: 10 type: integer minimum: 1 description: >- The maximum number of objects to return. **IMPORTANT**: QuickBooks Desktop does not support cursor-based pagination for unit-of-measure sets. 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 unit-of-measure sets without limit, unlike paginated endpoints which default to 150 records. This is acceptable because unit-of-measure sets typically have low record counts. - in: query name: status schema: description: >- Filter for unit-of-measure sets that are active, inactive, or both. example: active type: string enum: - active - all - inactive default: active description: Filter for unit-of-measure sets that are active, inactive, or both. - in: query name: updatedAfter schema: description: >- Filter for unit-of-measure sets 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. example: 2025-01-01T12:34:56.000Z type: string description: >- Filter for unit-of-measure sets 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. - in: query name: updatedBefore schema: description: >- Filter for unit-of-measure sets 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. example: 2025-02-01T12:34:56.000Z type: string description: >- Filter for unit-of-measure sets 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. - in: query name: nameContains schema: description: >- Filter for unit-of-measure sets whose `name` contains this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameStartsWith` or `nameEndsWith`. example: ABC type: string description: >- Filter for unit-of-measure sets whose `name` contains this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameStartsWith` or `nameEndsWith`. - in: query name: nameStartsWith schema: description: >- Filter for unit-of-measure sets whose `name` starts with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameEndsWith`. example: ABC type: string description: >- Filter for unit-of-measure sets whose `name` starts with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameEndsWith`. - in: query name: nameEndsWith schema: description: >- Filter for unit-of-measure sets whose `name` ends with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameStartsWith`. example: ABC type: string description: >- Filter for unit-of-measure sets whose `name` ends with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameStartsWith`. - in: query name: nameFrom schema: description: >- Filter for unit-of-measure sets whose `name` is alphabetically greater than or equal to this value. example: A type: string description: >- Filter for unit-of-measure sets whose `name` is alphabetically greater than or equal to this value. - in: query name: nameTo schema: description: >- Filter for unit-of-measure sets whose `name` is alphabetically less than or equal to this value. example: Z type: string description: >- Filter for unit-of-measure sets whose `name` is alphabetically less than or equal to this value. responses: '200': description: Returns a list of unit-of-measure sets. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: objectType: description: The type of object. This value is always `"list"`. example: list type: string const: list url: type: string description: The endpoint URL where this list can be accessed. example: /v1/quickbooks-desktop/unit-of-measure-sets data: type: array items: $ref: '#/components/schemas/qbd_unit_of_measure_set' description: The array of unit-of-measure sets. required: - objectType - url - data additionalProperties: false x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const unitOfMeasureSets = await conductor.qbd.unitOfMeasureSets.list({ conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(unitOfMeasureSets.data); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) unit_of_measure_sets = conductor.qbd.unit_of_measure_sets.list( conductor_end_user_id="end_usr_1234567abcdefg", ) print(unit_of_measure_sets.data) post: summary: Create an unit-of-measure set description: >- Creates a new unit-of-measure set. NOTE: The QuickBooks company file must have unit-of-measure enabled (either a single unit per item or multiple units per item). To support both configurations, prefix all UOM set names with "By the" (for example, "By the Barrel"); otherwise, the set may not appear in the QuickBooks UI when the company file is configured for a single unit per item. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. requestBody: required: true content: application/json: schema: type: object properties: name: type: string maxLength: 31 description: >- The case-insensitive unique name of this unit-of-measure set, unique across all unit-of-measure sets. To ensure this set appears in the QuickBooks UI for companies configured with a single unit per item, prefix the name with "By the" (e.g., "By the Barrel"). **NOTE**: Unit-of-measure sets do not have a `fullName` field because they are not hierarchical objects, which is why `name` is unique for them but not for objects that have parents. Maximum length: 31 characters. example: Weight Units isActive: description: >- Indicates whether this unit-of-measure set is active. Inactive objects are typically hidden from views and reports in QuickBooks. Defaults to `true`. example: true default: true type: boolean unitOfMeasureType: description: >- The unit-of-measure set's type. Use "other" for a custom type defined in QuickBooks. example: count type: string enum: - area - count - length - other - time - volume - weight baseUnit: description: >- The unit-of-measure set's base unit used to track and price item quantities. If the company file is enabled for a single unit of measure per item, the base unit is the only unit available on transaction line items. If enabled for multiple units per item, the base unit is the default unless overridden by the set's default units. type: object properties: name: type: string maxLength: 31 description: >- The case-insensitive unique name of this base unit, unique across all base units. **NOTE**: Base units do not have a `fullName` field because they are not hierarchical objects, which is why `name` is unique for them but not for objects that have parents. Maximum length: 31 characters. example: Each abbreviation: type: string maxLength: 31 description: >- The base unit's short identifier shown in the QuickBooks U/M field on transaction line items. Maximum length: 31 characters. example: ea required: - name - abbreviation additionalProperties: false relatedUnits: description: >- The unit-of-measure set's related units, each specifying how many base units they represent (conversion ratio). minItems: 1 type: array items: type: object properties: name: type: string maxLength: 31 description: >- The case-insensitive unique name of this related unit, unique across all related units. **NOTE**: Related units do not have a `fullName` field because they are not hierarchical objects, which is why `name` is unique for them but not for objects that have parents. Maximum length: 31 characters. example: Case abbreviation: type: string maxLength: 31 description: >- The related unit's short identifier shown in the QuickBooks U/M field on transaction line items. Maximum length: 31 characters. example: ea conversionRatio: type: string description: >- The number of base units in this related unit, represented as a decimal string. For example, if the base unit is "box" and this related unit is "case" with `conversionRatio` = "10", that means there are 10 boxes in one case. example: '10' required: - name - abbreviation - conversionRatio additionalProperties: false defaultUnits: description: >- The unit-of-measure set's default units to appear in the U/M field on transaction line items. You can specify separate defaults for purchases, sales, and shipping. minItems: 1 type: array items: type: object properties: unitUsedFor: description: >- Where this default unit is used as the default: purchase line items, sales line items, or shipping lines. example: purchase type: string enum: - purchase - sales - shipping unit: type: string maxLength: 31 description: >- The unit name for this default unit, as displayed in the U/M field. If the company file is enabled for multiple units per item, this appears as an available unit for the item. Must correspond to the base unit or a related unit defined in this set. Maximum length: 31 characters. example: Each required: - unitUsedFor - unit additionalProperties: false required: - name - unitOfMeasureType - baseUnit additionalProperties: false responses: '200': description: Returns the newly created unit-of-measure set. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_unit_of_measure_set' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const unitOfMeasureSet = await conductor.qbd.unitOfMeasureSets.create({ baseUnit: { abbreviation: 'ea', name: 'Each' }, name: 'Weight Units', unitOfMeasureType: 'count', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(unitOfMeasureSet.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) unit_of_measure_set = conductor.qbd.unit_of_measure_sets.create( base_unit={ "abbreviation": "ea", "name": "Each", }, name="Weight Units", unit_of_measure_type="count", conductor_end_user_id="end_usr_1234567abcdefg", ) print(unit_of_measure_set.id) /quickbooks-desktop/unit-of-measure-sets/{id}: get: summary: Retrieve an unit-of-measure set description: >- Retrieves an unit-of-measure set by ID. **IMPORTANT:** If you need to fetch multiple specific unit-of-measure sets 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. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the unit-of-measure set to retrieve. example: 80000001-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the unit-of-measure set to retrieve. responses: '200': description: Returns the specified unit-of-measure set. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_unit_of_measure_set' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const unitOfMeasureSet = await conductor.qbd.unitOfMeasureSets.retrieve('80000001-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(unitOfMeasureSet.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) unit_of_measure_set = conductor.qbd.unit_of_measure_sets.retrieve( id="80000001-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(unit_of_measure_set.id) /quickbooks-desktop/vendor-credits: get: summary: List all vendor credits description: >- Returns a list of vendor credits. Use the `cursor` parameter to paginate through the results. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: query name: ids schema: description: >- Filter for specific vendor credits 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 type: array items: type: string description: >- Filter for specific vendor credits 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. - in: query name: refNumbers schema: description: >- Filter for specific vendor credits 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: - VENDOR CREDIT-1234 type: array items: type: string description: >- Filter for specific vendor credits 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. - in: query name: limit schema: default: 150 description: >- 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. example: 150 type: integer minimum: 1 maximum: 150 description: >- 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. - in: query name: cursor schema: description: >- 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 type: string description: >- 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. - in: query name: updatedAfter schema: description: >- Filter for vendor credits 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. example: 2025-01-01T12:34:56.000Z type: string description: >- Filter for vendor credits 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. - in: query name: updatedBefore schema: description: >- Filter for vendor credits 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. example: 2025-02-01T12:34:56.000Z type: string description: >- Filter for vendor credits 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. - in: query name: transactionDateFrom schema: description: >- Filter for vendor credits 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-01` → `2025-01-01T00:00:00`). example: '2025-01-01' type: string format: date description: >- Filter for vendor credits 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-01` → `2025-01-01T00:00:00`). - in: query name: transactionDateTo schema: description: >- Filter for vendor credits 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-01` → `2025-01-01T23:59:59`). example: '2025-02-01' type: string format: date description: >- Filter for vendor credits 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-01` → `2025-01-01T23:59:59`). - in: query name: vendorIds schema: description: >- Filter for vendor credits received from these vendors. These are the vendors who owe the QuickBooks user money. example: - 80000001-1234567890 type: array items: type: string description: >- Filter for vendor credits received from these vendors. These are the vendors who owe the QuickBooks user money. - in: query name: accountIds schema: description: Filter for vendor credits associated with these accounts. example: - 80000001-1234567890 type: array items: type: string description: Filter for vendor credits associated with these accounts. - in: query name: refNumberContains schema: description: >- Filter for vendor credits whose `refNumber` contains this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberStartsWith` or `refNumberEndsWith`. example: VCREDIT-1234 type: string description: >- Filter for vendor credits whose `refNumber` contains this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberStartsWith` or `refNumberEndsWith`. - in: query name: refNumberStartsWith schema: description: >- Filter for vendor credits whose `refNumber` starts with this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberContains` or `refNumberEndsWith`. example: VCREDIT type: string description: >- Filter for vendor credits whose `refNumber` starts with this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberContains` or `refNumberEndsWith`. - in: query name: refNumberEndsWith schema: description: >- Filter for vendor credits whose `refNumber` ends with this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberContains` or `refNumberStartsWith`. example: '1234' type: string description: >- Filter for vendor credits whose `refNumber` ends with this substring. **NOTE**: If you use this parameter, you cannot also use `refNumberContains` or `refNumberStartsWith`. - in: query name: refNumberFrom schema: description: >- Filter for vendor credits 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: VCREDIT-0001 type: string description: >- Filter for vendor credits 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. - in: query name: refNumberTo schema: description: >- Filter for vendor credits 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: VCREDIT-9999 type: string description: >- Filter for vendor credits 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. - in: query name: currencyIds schema: description: Filter for vendor credits in these currencies. example: - 80000001-1234567890 type: array items: type: string description: Filter for vendor credits in these currencies. - in: query name: includeLineItems schema: description: Whether to include line items in the response. Defaults to `true`. example: true type: boolean default: true description: Whether to include line items in the response. Defaults to `true`. - in: query name: includeLinkedTransactions schema: description: >- Whether to include linked transactions in the response. Defaults to `false`. For example, a payment linked to the corresponding vendor credit. example: false type: boolean default: false description: >- Whether to include linked transactions in the response. Defaults to `false`. For example, a payment linked to the corresponding vendor credit. responses: '200': description: Returns a list of vendor credits. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: objectType: description: The type of object. This value is always `"list"`. example: list type: string const: list url: type: string description: The endpoint URL where this list can be accessed. example: /v1/quickbooks-desktop/vendor-credits data: type: array items: $ref: '#/components/schemas/qbd_vendor_credit' description: The array of vendor credits. nextCursor: anyOf: - type: string - type: 'null' description: >- The `nextCursor` is a pagination token returned in the response when you use the `limit` parameter in your request. To retrieve subsequent pages of results, include this token as the value of the `cursor` request parameter in your following API calls. **NOTE**: The `nextCursor` value remains constant throughout the pagination process for a specific list instance; continue to use the same `nextCursor` token in each request to fetch additional pages. example: 12345678-abcd-abcd-example-1234567890ab remainingCount: anyOf: - type: number - type: 'null' description: The number of objects remaining to be fetched. example: 10 hasMore: type: boolean description: Indicates whether there are more objects to be fetched. required: - objectType - url - data - nextCursor - remainingCount - hasMore additionalProperties: false x-codeSamples: - lang: JavaScript source: |- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); // Automatically fetches more pages as needed. for await (const vendorCredit of conductor.qbd.vendorCredits.list({ conductorEndUserId: 'end_usr_1234567abcdefg', })) { console.log(vendorCredit.id); } - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) page = conductor.qbd.vendor_credits.list( conductor_end_user_id="end_usr_1234567abcdefg", ) page = page.data[0] print(page.id) post: summary: Create a vendor credit description: >- Creates a vendor credit to capture returns, rebates, or other amounts a vendor owes so you can apply the credit when recording future bill payments. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. requestBody: required: true content: application/json: schema: type: object properties: vendorId: description: >- The vendor who sent this vendor credit for goods or services purchased. example: 80000001-1234567890 type: string maxLength: 36 payablesAccountId: description: >- The Accounts-Payable (A/P) account to which this vendor credit is assigned, used for accounts-payable tracking. If omitted, QuickBooks Desktop uses the default A/P account configured in the company file. **IMPORTANT**: If this vendor credit is linked to other transactions, this A/P account must match the `payablesAccount` used in those other transactions. example: 80000001-1234567890 type: string maxLength: 36 transactionDate: type: string format: date description: >- The date of this vendor credit, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-01' refNumber: description: >- The case-sensitive user-defined reference number for this vendor credit, 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. When left blank in this create request, this field will be left blank in QuickBooks (i.e., it does *not* auto-increment). Maximum length: 20 characters. example: VCREDIT-1234 type: string maxLength: 20 memo: description: A memo or note for this vendor credit. example: Credit for returned merchandise - Invoice INV-1234 type: string salesTaxCodeId: description: >- The sales-tax code for this vendor credit, 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 vendor credit'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. example: 80000001-1234567890 type: string maxLength: 36 exchangeRate: description: >- The market exchange rate between this vendor credit'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: 1.2345 type: number externalId: type: string format: uuid description: >- 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. **IMPORTANT**: This field must be formatted as a valid GUID; otherwise, QuickBooks will return an error. example: 12345678-abcd-1234-abcd-1234567890ab expenseLines: description: >- The vendor credit's expense lines, each representing one line in this expense. minItems: 1 type: array items: type: object properties: accountId: description: >- The expense account being debited (increased) for this expense line. The corresponding account being credited is usually a liability account (e.g., Accounts-Payable) or an asset account (e.g., Cash), depending on the transaction type. example: 80000001-1234567890 type: string maxLength: 36 amount: description: >- The monetary amount of this expense line, represented as a decimal string. Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45"). example: '1000.00' type: string memo: description: A memo or note for this expense line. example: New office chair type: string payeeId: description: >- 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). example: 80000001-1234567890 type: string maxLength: 36 classId: description: >- The expense 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 expense lines unless overridden here, at the transaction line level. example: 80000001-1234567890 type: string maxLength: 36 salesTaxCodeId: description: >- The sales-tax code for this expense 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. example: 80000001-1234567890 type: string maxLength: 36 billingStatus: description: The billing status of this expense line. example: billable type: string enum: - billable - has_been_billed - not_billable default: billable salesRepresentativeId: description: >- The expense line's sales representative. Sales representatives can be employees, vendors, or other names in QuickBooks. example: 80000001-1234567890 type: string maxLength: 36 customFields: description: >- The custom fields for the expense line object, added as user-defined data extensions, not included in the standard QuickBooks object. minItems: 1 type: array items: type: object properties: ownerId: type: string description: >- 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. example: '0' name: type: string description: >- 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. example: Customer Rating value: type: string description: >- The value of this custom field. The maximum length depends on the field's data type. example: Premium required: - ownerId - name - value additionalProperties: false additionalProperties: false itemLines: description: >- The vendor credit's item lines, each representing the purchase of a specific item or service. minItems: 1 type: array items: type: object properties: itemId: description: >- The item associated with this item 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. example: 80000001-1234567890 type: string maxLength: 36 inventorySiteId: description: >- The site location where inventory for the item associated with this item line is stored. example: 80000001-1234567890 type: string maxLength: 36 inventorySiteLocationId: description: >- The specific location (e.g., bin or shelf) within the inventory site where the item associated with this item line is stored. example: 80000001-1234567890 type: string maxLength: 36 serialNumber: description: >- The serial number of the item associated with this item line. This is used for tracking individual units of serialized inventory items. example: SN1234567890 type: string lotNumber: description: >- The lot number of the item associated with this item line. Used for tracking groups of inventory items that are purchased or manufactured together. example: LOT2023-001 type: string expirationDate: description: >- The expiration date for the serial number or lot number of the item associated with this item line, in ISO 8601 format (YYYY-MM-DD). This is particularly relevant for perishable or time-sensitive inventory items. Note that this field is only supported on QuickBooks Desktop 2023 or later. example: '2025-12-31' type: string format: date description: description: A description of this item line. example: High-quality widget with custom engraving type: string quantity: description: >- The quantity of the item associated with this item line. This field cannot be cleared. **NOTE**: Do not use this field if the associated item is a discount item. example: 5 type: number unitOfMeasure: description: >- The unit-of-measure used for the `quantity` in this item line. Must be a valid unit within the item's available units of measure. example: Each type: string cost: description: >- The cost of this item line, represented as a decimal string. If both `quantity` and `amount` are specified but not `cost`, QuickBooks will use them to calculate `cost`. Decimal string format: up to 5 decimal places and up to 10 digits before the decimal point (for example, "123.45"). example: '1000.00' type: string amount: description: >- The monetary amount of this item line, represented as a decimal string. If both `quantity` and `cost` are specified but not `amount`, QuickBooks will use them to calculate `amount`. If `amount`, `cost`, and `quantity` are all unspecified, then QuickBooks will calculate `amount` based on a `quantity` of `1` and the suggested `cost`. This field cannot be cleared. Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45"). example: '1000.00' type: string customerId: description: >- The customer or customer-job associated with this item line. example: 80000001-1234567890 type: string maxLength: 36 classId: description: >- The item 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 item lines unless overridden here, at the transaction line level. example: 80000001-1234567890 type: string maxLength: 36 salesTaxCodeId: description: >- The sales-tax code for this item 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. example: 80000001-1234567890 type: string maxLength: 36 billingStatus: description: The billing status of this item line. example: billable type: string enum: - billable - has_been_billed - not_billable default: billable overrideItemAccountId: description: >- The account to use for this item line, overriding the default account associated with the item. example: 80000001-1234567890 type: string maxLength: 36 linkToTransactionLine: description: >- An existing transaction line that you wish to link to this item line. Note that this only links to a single transaction line item, not an entire transaction. If you want to link an entire transaction and bring in all its lines, instead use the field `linkToTransactionIds` on the parent transaction, if available. If the parent transaction is a bill or an item receipt, you can only link to purchase orders; QuickBooks does not support linking these transactions to other transaction types. Transaction lines can only be linked when creating this item line and cannot be unlinked later. **IMPORTANT**: If you use `linkToTransactionLine` on this item line, you cannot use the field `item` on this line (QuickBooks will return an error) because this field brings in all of the item information you need. You can, however, specify whatever `quantity` or `rate` that you want, or any other transaction line element other than `item`. If the parent transaction supports the `linkToTransactionIds` field, you can use both `linkToTransactionLine` (on this item line) and `linkToTransactionIds` (on its parent transaction) in the same request as long as they do NOT link to the same transaction (otherwise, QuickBooks will return an error). QuickBooks will also return an error if you attempt to link a transaction that is empty or already closed. **IMPORTANT**: By default, QuickBooks will not return any information about the linked transaction line in this endpoint's response even when this request is successful. To see the transaction line linked via this field, refetch the parent transaction and check the `linkedTransactions` response field. If fetching a list of transactions, you must also specify the parameter `includeLinkedTransactions=true` to see the `linkedTransactions` response field. type: object properties: transactionId: type: string maxLength: 36 description: >- The ID of the transaction to which to link this transaction. example: 123ABC-1234567890 transactionLineId: type: string maxLength: 36 description: >- The ID of the transaction line to which to link this transaction. example: 456DEF-1234567890 required: - transactionId - transactionLineId additionalProperties: false salesRepresentativeId: description: >- The item line's sales representative. Sales representatives can be employees, vendors, or other names in QuickBooks. example: 80000001-1234567890 type: string maxLength: 36 customFields: description: >- The custom fields for the item line object, added as user-defined data extensions, not included in the standard QuickBooks object. minItems: 1 type: array items: type: object properties: ownerId: type: string description: >- 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. example: '0' name: type: string description: >- 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. example: Customer Rating value: type: string description: >- The value of this custom field. The maximum length depends on the field's data type. example: Premium required: - ownerId - name - value additionalProperties: false additionalProperties: false itemGroupLines: description: >- The vendor credit's item group lines, each representing a predefined set of items bundled together because they are commonly purchased together or grouped for faster entry. minItems: 1 type: array items: type: object properties: itemGroupId: description: >- The item group line's item group, representing a predefined set of items bundled because they are commonly purchased together or grouped for faster entry. example: 80000001-1234567890 type: string maxLength: 36 quantity: description: >- The quantity of the item group associated with this item group line. This field cannot be cleared. **NOTE**: Do not use this field if the associated item group is a discount item group. example: 5 type: number unitOfMeasure: description: >- The unit-of-measure used for the `quantity` in this item group line. Must be a valid unit within the item's available units of measure. example: Each type: string inventorySiteId: description: >- The site location where inventory for the item group associated with this item group line is stored. example: 80000001-1234567890 type: string maxLength: 36 inventorySiteLocationId: description: >- The specific location (e.g., bin or shelf) within the inventory site where the item group associated with this item group line is stored. example: 80000001-1234567890 type: string maxLength: 36 customFields: description: >- The custom fields for the item group line object, added as user-defined data extensions, not included in the standard QuickBooks object. minItems: 1 type: array items: type: object properties: ownerId: type: string description: >- 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. example: '0' name: type: string description: >- 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. example: Customer Rating value: type: string description: >- The value of this custom field. The maximum length depends on the field's data type. example: Premium required: - ownerId - name - value additionalProperties: false required: - itemGroupId additionalProperties: false required: - vendorId - transactionDate additionalProperties: false responses: '200': description: Returns the newly created vendor credit. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_vendor_credit' x-codeSamples: - lang: JavaScript source: |- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const vendorCredit = await conductor.qbd.vendorCredits.create({ transactionDate: '2024-10-01', vendorId: '80000001-1234567890', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(vendorCredit.id); - lang: Python source: |- import os from datetime import date from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) vendor_credit = conductor.qbd.vendor_credits.create( transaction_date=date.fromisoformat("2024-10-01"), vendor_id="80000001-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(vendor_credit.id) /quickbooks-desktop/vendor-credits/{id}: get: summary: Retrieve a vendor credit description: >- Retrieves a vendor credit by ID. **IMPORTANT:** If you need to fetch multiple specific vendor credits 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. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the vendor credit to retrieve. example: 123ABC-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the vendor credit to retrieve. responses: '200': description: Returns the specified vendor credit. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_vendor_credit' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const vendorCredit = await conductor.qbd.vendorCredits.retrieve('123ABC-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(vendorCredit.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) vendor_credit = conductor.qbd.vendor_credits.retrieve( id="123ABC-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(vendor_credit.id) post: summary: Update a vendor credit description: >- Updates a vendor credit before you apply it to bills, letting you adjust the amounts, memo, or line allocations that make up the credit. **NOTE:** If you include `expenseLines`, `itemLines`, or `itemGroupLines`, 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. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the vendor credit to update. example: 123ABC-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the vendor credit to update. requestBody: required: true content: application/json: schema: type: object properties: revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of the vendor credit 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. example: '1721172183' vendorId: description: >- The vendor who sent this vendor credit for goods or services purchased. example: 80000001-1234567890 type: string maxLength: 36 payablesAccountId: description: >- The Accounts-Payable (A/P) account to which this vendor credit is assigned, used for accounts-payable tracking. If omitted, QuickBooks Desktop uses the default A/P account configured in the company file. **IMPORTANT**: If this vendor credit is linked to other transactions, this A/P account must match the `payablesAccount` used in those other transactions. example: 80000001-1234567890 type: string maxLength: 36 transactionDate: description: >- The date of this vendor credit, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-01' type: string format: date refNumber: description: >- The case-sensitive user-defined reference number for this vendor credit, 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: 20 characters. example: VCREDIT-1234 type: string maxLength: 20 memo: description: A memo or note for this vendor credit. example: Credit for returned merchandise - Invoice INV-1234 type: string salesTaxCodeId: description: >- The sales-tax code for this vendor credit, 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 vendor credit'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. example: 80000001-1234567890 type: string maxLength: 36 exchangeRate: description: >- The market exchange rate between this vendor credit'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: 1.2345 type: number clearExpenseLines: description: >- When `true`, removes all existing expense lines associated with this vendor credit. To modify or add individual expense lines, use the field `expenseLines` instead. example: false type: boolean expenseLines: description: >- The vendor credit's expense lines, each representing one line in this expense. **IMPORTANT**: 1. Including this array in your update request will **REPLACE** all existing expense lines for the vendor credit with this array. To keep any existing expense lines, you must include them in this array even if they have not changed. **Any expense lines not included will be removed.** 2. To add a new expense line, include it here with the `id` field set to `-1`. 3. If you do not wish to modify any expense lines, omit this field entirely to keep them unchanged. minItems: 1 type: array items: type: object properties: id: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of an existing expense line you wish to retain or update. **IMPORTANT**: Set this field to `-1` for new expense lines you wish to add. example: 456DEF-1234567890 accountId: description: >- The expense account being debited (increased) for this expense line. The corresponding account being credited is usually a liability account (e.g., Accounts-Payable) or an asset account (e.g., Cash), depending on the transaction type. example: 80000001-1234567890 type: string maxLength: 36 amount: description: >- The monetary amount of this expense line, represented as a decimal string. Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45"). example: '1000.00' type: string memo: description: A memo or note for this expense line. example: New office chair type: string payeeId: description: >- 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). example: 80000001-1234567890 type: string maxLength: 36 classId: description: >- The expense 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 expense lines unless overridden here, at the transaction line level. example: 80000001-1234567890 type: string maxLength: 36 salesTaxCodeId: description: >- The sales-tax code for this expense 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. example: 80000001-1234567890 type: string maxLength: 36 billingStatus: description: The billing status of this expense line. example: billable type: string enum: - billable - has_been_billed - not_billable salesRepresentativeId: description: >- The expense line's sales representative. Sales representatives can be employees, vendors, or other names in QuickBooks. example: 80000001-1234567890 type: string maxLength: 36 required: - id additionalProperties: false clearItemLines: description: >- When `true`, removes all existing item lines associated with this vendor credit. To modify or add individual item lines, use the field `itemLines` instead. example: false type: boolean itemLines: description: >- The vendor credit's item lines, each representing the purchase of a specific item or service. **IMPORTANT**: 1. Including this array in your update request will **REPLACE** all existing item lines for the vendor credit with this array. To keep any existing item lines, you must include them in this array even if they have not changed. **Any item lines not included will be removed.** 2. To add a new item line, include it here with the `id` field set to `-1`. 3. If you do not wish to modify any item lines, omit this field entirely to keep them unchanged. minItems: 1 type: array items: type: object properties: id: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of an existing item line you wish to retain or update. **IMPORTANT**: Set this field to `-1` for new item lines you wish to add. example: 456DEF-1234567890 itemId: description: >- The item associated with this item 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. example: 80000001-1234567890 type: string maxLength: 36 inventorySiteId: description: >- The site location where inventory for the item associated with this item line is stored. example: 80000001-1234567890 type: string maxLength: 36 inventorySiteLocationId: description: >- The specific location (e.g., bin or shelf) within the inventory site where the item associated with this item line is stored. example: 80000001-1234567890 type: string maxLength: 36 serialNumber: description: >- The serial number of the item associated with this item line. This is used for tracking individual units of serialized inventory items. example: SN1234567890 type: string lotNumber: description: >- The lot number of the item associated with this item line. Used for tracking groups of inventory items that are purchased or manufactured together. example: LOT2023-001 type: string expirationDate: description: >- The expiration date for the serial number or lot number of the item associated with this item line, in ISO 8601 format (YYYY-MM-DD). This is particularly relevant for perishable or time-sensitive inventory items. Note that this field is only supported on QuickBooks Desktop 2023 or later. example: '2025-12-31' type: string format: date description: description: A description of this item line. example: High-quality widget with custom engraving type: string quantity: description: >- The quantity of the item associated with this item line. This field cannot be cleared. **NOTE**: Do not use this field if the associated item is a discount item. example: 5 type: number unitOfMeasure: description: >- The unit-of-measure used for the `quantity` in this item line. Must be a valid unit within the item's available units of measure. example: Each type: string overrideUnitOfMeasureSetId: description: >- Specifies an alternative unit-of-measure set when updating this item 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. example: 80000001-1234567890 type: string maxLength: 36 cost: description: >- The cost of this item line, represented as a decimal string. If both `quantity` and `amount` are specified but not `cost`, QuickBooks will use them to calculate `cost`. Decimal string format: up to 5 decimal places and up to 10 digits before the decimal point (for example, "123.45"). example: '1000.00' type: string amount: description: >- The monetary amount of this item line, represented as a decimal string. If both `quantity` and `cost` are specified but not `amount`, QuickBooks will use them to calculate `amount`. If `amount`, `cost`, and `quantity` are all unspecified, then QuickBooks will calculate `amount` based on a `quantity` of `1` and the suggested `cost`. This field cannot be cleared. Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45"). example: '1000.00' type: string customerId: description: >- The customer or customer-job associated with this item line. example: 80000001-1234567890 type: string maxLength: 36 classId: description: >- The item 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 item lines unless overridden here, at the transaction line level. example: 80000001-1234567890 type: string maxLength: 36 salesTaxCodeId: description: >- The sales-tax code for this item 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. example: 80000001-1234567890 type: string maxLength: 36 billingStatus: description: The billing status of this item line. example: billable type: string enum: - billable - has_been_billed - not_billable overrideItemAccountId: description: >- The account to use for this item line, overriding the default account associated with the item. example: 80000001-1234567890 type: string maxLength: 36 salesRepresentativeId: description: >- The item line's sales representative. Sales representatives can be employees, vendors, or other names in QuickBooks. example: 80000001-1234567890 type: string maxLength: 36 required: - id additionalProperties: false itemGroupLines: description: >- The vendor credit's item group lines, each representing a predefined set of items bundled together because they are commonly purchased together or grouped for faster entry. **IMPORTANT**: 1. Including this array in your update request will **REPLACE** all existing item group lines for the vendor credit with this array. To keep any existing item group lines, you must include them in this array even if they have not changed. **Any item group lines not included will be removed.** 2. To add a new item group line, include it here with the `id` field set to `-1`. 3. If you do not wish to modify any item group lines, omit this field entirely to keep them unchanged. minItems: 1 type: array items: type: object properties: id: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of an existing item group line you wish to retain or update. **IMPORTANT**: Set this field to `-1` for new item group lines you wish to add. example: 456DEF-1234567890 itemGroupId: description: >- The item group line's item group, representing a predefined set of items bundled because they are commonly purchased together or grouped for faster entry. example: 80000001-1234567890 type: string maxLength: 36 quantity: description: >- The quantity of the item group associated with this item group line. This field cannot be cleared. **NOTE**: Do not use this field if the associated item group is a discount item group. example: 5 type: number unitOfMeasure: description: >- The unit-of-measure used for the `quantity` in this item group line. Must be a valid unit within the item's available units of measure. example: Each type: string overrideUnitOfMeasureSetId: description: >- Specifies an alternative unit-of-measure set when updating this item group 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. example: 80000001-1234567890 type: string maxLength: 36 itemLines: description: >- The item group line's item lines, each representing the purchase of a specific item or service. **IMPORTANT**: 1. Including this array in your update request will **REPLACE** all existing item lines for the item group line with this array. To keep any existing item lines, you must include them in this array even if they have not changed. **Any item lines not included will be removed.** 2. To add a new item line, include it here with the `id` field set to `-1`. 3. If you do not wish to modify any item lines, omit this field entirely to keep them unchanged. minItems: 1 type: array items: type: object properties: id: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of an existing item line you wish to retain or update. **IMPORTANT**: Set this field to `-1` for new item lines you wish to add. example: 456DEF-1234567890 itemId: description: >- The item associated with this item 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. example: 80000001-1234567890 type: string maxLength: 36 inventorySiteId: description: >- The site location where inventory for the item associated with this item line is stored. example: 80000001-1234567890 type: string maxLength: 36 inventorySiteLocationId: description: >- The specific location (e.g., bin or shelf) within the inventory site where the item associated with this item line is stored. example: 80000001-1234567890 type: string maxLength: 36 serialNumber: description: >- The serial number of the item associated with this item line. This is used for tracking individual units of serialized inventory items. example: SN1234567890 type: string lotNumber: description: >- The lot number of the item associated with this item line. Used for tracking groups of inventory items that are purchased or manufactured together. example: LOT2023-001 type: string expirationDate: description: >- The expiration date for the serial number or lot number of the item associated with this item line, in ISO 8601 format (YYYY-MM-DD). This is particularly relevant for perishable or time-sensitive inventory items. Note that this field is only supported on QuickBooks Desktop 2023 or later. example: '2025-12-31' type: string format: date description: description: A description of this item line. example: High-quality widget with custom engraving type: string quantity: description: >- The quantity of the item associated with this item line. This field cannot be cleared. **NOTE**: Do not use this field if the associated item is a discount item. example: 5 type: number unitOfMeasure: description: >- The unit-of-measure used for the `quantity` in this item line. Must be a valid unit within the item's available units of measure. example: Each type: string overrideUnitOfMeasureSetId: description: >- Specifies an alternative unit-of-measure set when updating this item 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. example: 80000001-1234567890 type: string maxLength: 36 cost: description: >- The cost of this item line, represented as a decimal string. If both `quantity` and `amount` are specified but not `cost`, QuickBooks will use them to calculate `cost`. Decimal string format: up to 5 decimal places and up to 10 digits before the decimal point (for example, "123.45"). example: '1000.00' type: string amount: description: >- The monetary amount of this item line, represented as a decimal string. If both `quantity` and `cost` are specified but not `amount`, QuickBooks will use them to calculate `amount`. If `amount`, `cost`, and `quantity` are all unspecified, then QuickBooks will calculate `amount` based on a `quantity` of `1` and the suggested `cost`. This field cannot be cleared. Decimal string format: exactly 2 decimal places when cents are included and up to 13 digits before the decimal point (for example, "123.45"). example: '1000.00' type: string customerId: description: >- The customer or customer-job associated with this item line. example: 80000001-1234567890 type: string maxLength: 36 classId: description: >- The item 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 item lines unless overridden here, at the transaction line level. example: 80000001-1234567890 type: string maxLength: 36 salesTaxCodeId: description: >- The sales-tax code for this item 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. example: 80000001-1234567890 type: string maxLength: 36 billingStatus: description: The billing status of this item line. example: billable type: string enum: - billable - has_been_billed - not_billable overrideItemAccountId: description: >- The account to use for this item line, overriding the default account associated with the item. example: 80000001-1234567890 type: string maxLength: 36 salesRepresentativeId: description: >- The item line's sales representative. Sales representatives can be employees, vendors, or other names in QuickBooks. example: 80000001-1234567890 type: string maxLength: 36 required: - id additionalProperties: false required: - id additionalProperties: false required: - revisionNumber additionalProperties: false responses: '200': description: Returns the updated vendor credit. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_vendor_credit' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const vendorCredit = await conductor.qbd.vendorCredits.update('123ABC-1234567890', { revisionNumber: '1721172183', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(vendorCredit.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) vendor_credit = conductor.qbd.vendor_credits.update( id="123ABC-1234567890", revision_number="1721172183", conductor_end_user_id="end_usr_1234567abcdefg", ) print(vendor_credit.id) delete: summary: Delete a vendor credit description: >- Permanently deletes a vendor credit. The deletion will fail if the vendor credit is currently in use or has any linked transactions that are in use. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the vendor credit to delete. example: 123ABC-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the vendor credit to delete. responses: '200': description: >- Returns a confirmation of the deletion with the ID of the deleted vendor credit. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: id: type: string description: >- The QuickBooks-assigned unique identifier of the deleted vendor credit. example: 123ABC-1234567890 objectType: description: >- The type of object. This value is always `"qbd_vendor_credit"`. example: qbd_vendor_credit type: string const: qbd_vendor_credit refNumber: anyOf: - type: string - type: 'null' description: >- The case-sensitive user-defined reference number of the deleted vendor credit. example: VCREDIT-1234 deleted: type: boolean description: Indicates whether the vendor credit was deleted. example: true required: - id - objectType - refNumber - deleted additionalProperties: false x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const vendorCredit = await conductor.qbd.vendorCredits.delete('123ABC-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(vendorCredit.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) vendor_credit = conductor.qbd.vendor_credits.delete( id="123ABC-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(vendor_credit.id) /quickbooks-desktop/vendor-credits/{id}/void: post: summary: Void a vendor credit description: >- Voids a vendor credit by setting its amount to zero while keeping a record of it in QuickBooks. The void will fail if the vendor credit is currently in use or has any linked transactions that are in use. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the vendor credit to void. example: 123ABC-1234567890 required: true description: >- The QuickBooks-assigned unique identifier of the vendor credit to void. responses: '200': description: >- Returns a confirmation of the void with the ID of the voided vendor credit. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: id: type: string description: >- The QuickBooks-assigned unique identifier of the voided vendor credit. example: 123ABC-1234567890 objectType: description: >- The type of object. This value is always `"qbd_vendor_credit"`. example: qbd_vendor_credit type: string const: qbd_vendor_credit createdAt: anyOf: - type: string - type: 'null' description: >- The date and time when this vendor credit 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. example: 2025-01-01T12:34:56.000Z updatedAt: anyOf: - type: string - type: 'null' description: >- The date and time when this vendor credit 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. example: 2025-02-01T12:34:56.000Z refNumber: anyOf: - type: string - type: 'null' description: >- The case-sensitive user-defined reference number of the voided vendor credit. example: VCREDIT-1234 voided: type: boolean description: Indicates whether the vendor credit was voided. example: true required: - id - objectType - createdAt - updatedAt - refNumber - voided additionalProperties: false x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const response = await conductor.qbd.vendorCredits.void('123ABC-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(response.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) response = conductor.qbd.vendor_credits.void( id="123ABC-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(response.id) /quickbooks-desktop/vendors: get: summary: List all vendors description: >- Returns a list of vendors. Use the `cursor` parameter to paginate through the results. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: query name: ids schema: description: >- Filter for specific vendors 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: - 80000001-1234567890 type: array items: type: string description: >- Filter for specific vendors 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. - in: query name: names schema: description: >- Filter for specific vendors by their name(s), case-insensitive. Like `id`, `name` is a unique identifier for a vendor. **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: - Acme Supplies Inc. type: array items: type: string description: >- Filter for specific vendors by their name(s), case-insensitive. Like `id`, `name` is a unique identifier for a vendor. **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. - in: query name: limit schema: default: 150 description: >- 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. example: 150 type: integer minimum: 1 maximum: 150 description: >- 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. - in: query name: cursor schema: description: >- 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 type: string description: >- 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. - in: query name: status schema: description: Filter for vendors that are active, inactive, or both. example: active type: string enum: - active - all - inactive default: active description: Filter for vendors that are active, inactive, or both. - in: query name: updatedAfter schema: description: >- Filter for vendors 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. example: 2025-01-01T12:34:56.000Z type: string description: >- Filter for vendors 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. - in: query name: updatedBefore schema: description: >- Filter for vendors 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. example: 2025-02-01T12:34:56.000Z type: string description: >- Filter for vendors 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. - in: query name: nameContains schema: description: >- Filter for vendors whose `name` contains this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameStartsWith` or `nameEndsWith`. example: ABC type: string description: >- Filter for vendors whose `name` contains this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameStartsWith` or `nameEndsWith`. - in: query name: nameStartsWith schema: description: >- Filter for vendors whose `name` starts with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameEndsWith`. example: ABC type: string description: >- Filter for vendors whose `name` starts with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameEndsWith`. - in: query name: nameEndsWith schema: description: >- Filter for vendors whose `name` ends with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameStartsWith`. example: ABC type: string description: >- Filter for vendors whose `name` ends with this substring, case-insensitive. **NOTE**: If you use this parameter, you cannot also use `nameContains` or `nameStartsWith`. - in: query name: nameFrom schema: description: >- Filter for vendors whose `name` is alphabetically greater than or equal to this value. example: A type: string description: >- Filter for vendors whose `name` is alphabetically greater than or equal to this value. - in: query name: nameTo schema: description: >- Filter for vendors whose `name` is alphabetically less than or equal to this value. example: Z type: string description: >- Filter for vendors whose `name` is alphabetically less than or equal to this value. - in: query name: totalBalance schema: description: >- Filter for vendors whose `totalBalance` equals this amount, represented as a decimal string. You can only use one total-balance filter at a time. example: '123.45' type: string description: >- Filter for vendors whose `totalBalance` equals this amount, represented as a decimal string. You can only use one total-balance filter at a time. - in: query name: totalBalanceGreaterThan schema: description: >- Filter for vendors whose `totalBalance` is greater than this amount, represented as a decimal string. You can only use one total-balance filter at a time. example: '123.45' type: string description: >- Filter for vendors whose `totalBalance` is greater than this amount, represented as a decimal string. You can only use one total-balance filter at a time. - in: query name: totalBalanceGreaterThanOrEqualTo schema: description: >- Filter for vendors 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. example: '123.45' type: string description: >- Filter for vendors 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. - in: query name: totalBalanceLessThan schema: description: >- Filter for vendors whose `totalBalance` is less than this amount, represented as a decimal string. You can only use one total-balance filter at a time. example: '123.45' type: string description: >- Filter for vendors whose `totalBalance` is less than this amount, represented as a decimal string. You can only use one total-balance filter at a time. - in: query name: totalBalanceLessThanOrEqualTo schema: description: >- Filter for vendors 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. example: '123.45' type: string description: >- Filter for vendors 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. - in: query name: currencyIds schema: description: Filter for vendors in these currencies. example: - 80000001-1234567890 type: array items: type: string description: Filter for vendors in these currencies. - in: query name: classIds schema: description: >- Filter for vendors of these classes. A class is a way end-users can categorize vendors in QuickBooks. example: - 80000001-1234567890 type: array items: type: string description: >- Filter for vendors of these classes. A class is a way end-users can categorize vendors in QuickBooks. responses: '200': description: Returns a list of vendors. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: objectType: description: The type of object. This value is always `"list"`. example: list type: string const: list url: type: string description: The endpoint URL where this list can be accessed. example: /v1/quickbooks-desktop/vendors data: type: array items: $ref: '#/components/schemas/qbd_vendor' description: The array of vendors. nextCursor: anyOf: - type: string - type: 'null' description: >- The `nextCursor` is a pagination token returned in the response when you use the `limit` parameter in your request. To retrieve subsequent pages of results, include this token as the value of the `cursor` request parameter in your following API calls. **NOTE**: The `nextCursor` value remains constant throughout the pagination process for a specific list instance; continue to use the same `nextCursor` token in each request to fetch additional pages. example: 12345678-abcd-abcd-example-1234567890ab remainingCount: anyOf: - type: number - type: 'null' description: The number of objects remaining to be fetched. example: 10 hasMore: type: boolean description: Indicates whether there are more objects to be fetched. required: - objectType - url - data - nextCursor - remainingCount - hasMore additionalProperties: false x-codeSamples: - lang: JavaScript source: |- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); // Automatically fetches more pages as needed. for await (const vendor of conductor.qbd.vendors.list({ conductorEndUserId: 'end_usr_1234567abcdefg', })) { console.log(vendor.id); } - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) page = conductor.qbd.vendors.list( conductor_end_user_id="end_usr_1234567abcdefg", ) page = page.data[0] print(page.id) post: summary: Create a vendor description: Creates a new vendor. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. requestBody: required: true content: application/json: schema: type: object properties: name: type: string maxLength: 41 description: >- The case-insensitive unique name of this vendor, unique across all vendors. **NOTE**: Vendors do not have a `fullName` field because they are not hierarchical objects, which is why `name` is unique for them but not for objects that have parents. Maximum length: 41 characters. example: Acme Supplies Inc. isActive: description: >- Indicates whether this vendor is active. Inactive objects are typically hidden from views and reports in QuickBooks. Defaults to `true`. example: true default: true type: boolean classId: description: >- The vendor'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. example: 80000001-1234567890 type: string maxLength: 36 companyName: description: >- The name of the company associated with this vendor. This name is used on invoices, checks, and other forms. Maximum length: 41 characters. example: Acme Corporation type: string maxLength: 41 salutation: description: >- The formal salutation title that precedes the name of the contact person for this vendor, such as "Mr.", "Ms.", or "Dr.". example: Dr. type: string firstName: description: |- The first name of the contact person for this vendor. Maximum length: 25 characters. example: John type: string maxLength: 25 middleName: description: |- The middle name of the contact person for this vendor. Maximum length: 5 characters. example: A. type: string maxLength: 5 lastName: description: |- The last name of the contact person for this vendor. Maximum length: 25 characters. example: Doe type: string maxLength: 25 jobTitle: description: The job title of the contact person for this vendor. example: Purchasing Manager type: string billingAddress: description: The vendor's billing address. type: object properties: line1: description: >- The first line of the address (e.g., street, PO Box, or company name). Maximum length: 41 characters. example: Conductor Labs Inc. type: string maxLength: 41 line2: description: >- The second line of the address, if needed (e.g., apartment, suite, unit, or building). Maximum length: 41 characters. example: 540 Market St. type: string maxLength: 41 line3: description: |- The third line of the address, if needed. Maximum length: 41 characters. example: Suite 100 type: string maxLength: 41 line4: description: |- The fourth line of the address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 line5: description: |- The fifth line of the address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 city: description: >- The city, district, suburb, town, or village name of the address. Maximum length: 31 characters. example: San Francisco type: string maxLength: 31 state: description: >- The state, county, province, or region name of the address. Maximum length: 21 characters. example: CA type: string maxLength: 21 postalCode: description: |- The postal code or ZIP code of the address. Maximum length: 13 characters. example: '94110' type: string maxLength: 13 country: description: The country name of the address. example: United States type: string note: description: >- A note written at the bottom of the address in the form in which it appears, such as the invoice form. example: Conductor HQ type: string additionalProperties: false shippingAddress: description: The vendor's shipping address. type: object properties: line1: description: >- The first line of the address (e.g., street, PO Box, or company name). Maximum length: 41 characters. example: Conductor Labs Inc. type: string maxLength: 41 line2: description: >- The second line of the address, if needed (e.g., apartment, suite, unit, or building). Maximum length: 41 characters. example: 540 Market St. type: string maxLength: 41 line3: description: |- The third line of the address, if needed. Maximum length: 41 characters. example: Suite 100 type: string maxLength: 41 line4: description: |- The fourth line of the address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 line5: description: |- The fifth line of the address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 city: description: >- The city, district, suburb, town, or village name of the address. Maximum length: 31 characters. example: San Francisco type: string maxLength: 31 state: description: >- The state, county, province, or region name of the address. Maximum length: 21 characters. example: CA type: string maxLength: 21 postalCode: description: |- The postal code or ZIP code of the address. Maximum length: 13 characters. example: '94110' type: string maxLength: 13 country: description: The country name of the address. example: United States type: string note: description: >- A note written at the bottom of the address in the form in which it appears, such as the invoice form. example: Conductor HQ type: string additionalProperties: false phone: description: |- The vendor's primary telephone number. Maximum length: 21 characters. example: +1-555-123-4567 type: string maxLength: 21 alternatePhone: description: |- The vendor's alternate telephone number. Maximum length: 21 characters. example: +1-555-987-6543 type: string maxLength: 21 fax: description: |- The vendor's fax number. Maximum length: 21 characters. example: +1-555-555-1212 type: string maxLength: 21 email: description: The vendor's email address. example: vendor@example.com type: string ccEmail: description: >- An email address to carbon copy (CC) on communications with this vendor. example: manager@example.com type: string contact: description: The name of the primary contact person for this vendor. example: Jane Smith type: string alternateContact: description: The name of a alternate contact person for this vendor. example: Bob Johnson type: string customContactFields: description: >- Additional custom contact fields for this vendor, such as phone numbers or email addresses. minItems: 1 type: array items: type: object properties: name: type: string description: >- The name of the contact field (e.g., "old address", "secondary phone"). example: Main Phone value: type: string description: The value of the contact field. example: 555-123-4567 required: - name - value additionalProperties: false additionalContacts: description: Additional alternate contacts for this vendor. minItems: 1 type: array items: type: object properties: salutation: description: >- The contact's formal salutation title that precedes their name, such as "Mr.", "Ms.", or "Dr.". example: Dr. type: string firstName: type: string maxLength: 25 description: |- The contact's first name. Maximum length: 25 characters. example: John middleName: description: |- The contact's middle name. Maximum length: 5 characters. example: A. type: string maxLength: 5 lastName: description: |- The contact's last name. Maximum length: 25 characters. example: Doe type: string maxLength: 25 jobTitle: description: The contact's job title. example: Purchasing Manager type: string customContactFields: description: >- Additional custom contact fields for this contact, such as phone numbers or email addresses. minItems: 1 type: array items: type: object properties: name: type: string description: >- The name of the contact field (e.g., "old address", "secondary phone"). example: Main Phone value: type: string description: The value of the contact field. example: 555-123-4567 required: - name - value additionalProperties: false required: - firstName additionalProperties: false nameOnCheck: description: >- The vendor's name as it should appear on checks issued to this vendor. Maximum length: 41 characters. example: Acme Supplies Ltd. type: string maxLength: 41 accountNumber: description: >- The vendor's account number, which appears in the QuickBooks chart of accounts, reports, and graphs. Note that if the "Use Account Numbers" preference is turned off in QuickBooks, the account number may not be visible in the user interface, but it can still be set and retrieved through the API. example: '1010' type: string note: description: A note or comment about this vendor. example: Preferred vendor for office supplies. type: string additionalNotes: description: Additional notes about this vendor. minItems: 1 type: array items: type: object properties: note: type: string description: The text of this note. example: This is a fun note. required: - note additionalProperties: false vendorTypeId: description: >- The vendor's type, used for categorizing vendors into meaningful segments, such as industry or region. example: 80000001-1234567890 type: string maxLength: 36 termsId: description: >- The vendor's payment terms, defining when payment is due and any applicable discounts. example: 80000001-1234567890 type: string maxLength: 36 creditLimit: description: >- The vendor's credit limit, represented as a decimal string. This is the maximum amount of money that can be spent being before billed by this vendor. If `null`, there is no credit limit. example: '5000.00' type: string taxIdentificationNumber: description: The vendor's tax identification number (e.g., EIN or SSN). example: 12-3456789 type: string isEligibleFor1099: description: >- Indicates whether this vendor is eligible to receive a 1099 form for tax reporting purposes. When `true`, then the fields `taxId` and `billingAddress` are required. example: true type: boolean openingBalance: description: >- The opening balance of this vendor's account, indicating the amount owed to this vendor, represented as a decimal string. example: '1000.00' type: string openingBalanceDate: description: >- The date of the opening balance of this vendor, in ISO 8601 format (YYYY-MM-DD). example: '2023-01-01' type: string format: date billingRateId: description: >- The vendor's billing rate, used to override service item rates in time tracking activities. example: 80000001-1234567890 type: string maxLength: 36 externalId: type: string format: uuid description: >- 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. **IMPORTANT**: This field must be formatted as a valid GUID; otherwise, QuickBooks will return an error. example: 12345678-abcd-1234-abcd-1234567890ab salesTaxCodeId: description: >- The default sales-tax code for transactions with this vendor, determining whether the transactions are taxable or non-taxable. This can be overridden at the transaction or transaction-line level. 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. example: 80000001-1234567890 type: string maxLength: 36 salesTaxCountry: description: >- The country for which sales tax is collected for this vendor. example: us type: string enum: - australia - canada - uk - us isSalesTaxAgency: description: Indicates whether this vendor is a sales tax agency. example: false type: boolean salesTaxReturnId: description: >- The vendor's sales tax return information, used for tracking and reporting sales tax liabilities. example: 80000001-1234567890 type: string maxLength: 36 taxRegistrationNumber: description: >- The vendor's tax registration number, for use in Canada or the UK. example: GB123456789 type: string reportingPeriod: description: >- The vendor's tax reporting period, for use in Canada or the UK. example: quarterly type: string enum: - monthly - quarterly isTrackingPurchaseTax: description: >- Indicates whether tax is tracked on purchases for this vendor, for use in Canada or the UK. example: true type: boolean purchaseTaxAccountId: description: >- The account used for tracking taxes on purchases for this vendor, for use in Canada or the UK. example: 80000001-1234567890 type: string maxLength: 36 isTrackingSalesTax: description: >- Indicates whether tax is tracked on sales for this vendor, for use in Canada or the UK. example: true type: boolean salesTaxAccountId: description: >- The account used for tracking taxes on sales for this vendor, for use in Canada or the UK. example: 80000001-1234567890 type: string maxLength: 36 isCompoundingTax: description: >- Indicates whether tax is charged on top of tax for this vendor, for use in Canada or the UK. example: false type: boolean defaultExpenseAccountIds: description: >- The expense accounts to prefill when entering bills for this vendor. example: - 80000001-1234567890 minItems: 1 type: array items: type: string maxLength: 36 currencyId: description: >- The vendor's currency. For built-in currencies, the name and code are standard ISO 4217 international values. For user-defined currencies, all values are editable. example: 80000001-1234567890 type: string maxLength: 36 required: - name additionalProperties: false responses: '200': description: Returns the newly created vendor. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_vendor' x-codeSamples: - lang: JavaScript source: |- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const vendor = await conductor.qbd.vendors.create({ name: 'Acme Supplies Inc.', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(vendor.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) vendor = conductor.qbd.vendors.create( name="Acme Supplies Inc.", conductor_end_user_id="end_usr_1234567abcdefg", ) print(vendor.id) /quickbooks-desktop/vendors/{id}: get: summary: Retrieve a vendor description: >- Retrieves a vendor by ID. **IMPORTANT:** If you need to fetch multiple specific vendors 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. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the vendor to retrieve. example: 80000001-1234567890 required: true description: The QuickBooks-assigned unique identifier of the vendor to retrieve. responses: '200': description: Returns the specified vendor. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_vendor' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const vendor = await conductor.qbd.vendors.retrieve('80000001-1234567890', { conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(vendor.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) vendor = conductor.qbd.vendors.retrieve( id="80000001-1234567890", conductor_end_user_id="end_usr_1234567abcdefg", ) print(vendor.id) post: summary: Update a vendor description: Updates an existing vendor. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. - in: path name: id schema: type: string maxLength: 36 description: The QuickBooks-assigned unique identifier of the vendor to update. example: 80000001-1234567890 required: true description: The QuickBooks-assigned unique identifier of the vendor to update. requestBody: required: true content: application/json: schema: type: object properties: revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of the vendor 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. example: '1721172183' name: description: >- The case-insensitive unique name of this vendor, unique across all vendors. **NOTE**: Vendors do not have a `fullName` field because they are not hierarchical objects, which is why `name` is unique for them but not for objects that have parents. Maximum length: 41 characters. example: Acme Supplies Inc. type: string maxLength: 41 isActive: description: >- Indicates whether this vendor is active. Inactive objects are typically hidden from views and reports in QuickBooks. Defaults to `true`. example: true type: boolean classId: description: >- The vendor'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. example: 80000001-1234567890 type: string maxLength: 36 companyName: description: >- The name of the company associated with this vendor. This name is used on invoices, checks, and other forms. Maximum length: 41 characters. example: Acme Corporation type: string maxLength: 41 salutation: description: >- The formal salutation title that precedes the name of the contact person for this vendor, such as "Mr.", "Ms.", or "Dr.". example: Dr. type: string firstName: description: |- The first name of the contact person for this vendor. Maximum length: 25 characters. example: John type: string maxLength: 25 middleName: description: |- The middle name of the contact person for this vendor. Maximum length: 5 characters. example: A. type: string maxLength: 5 lastName: description: |- The last name of the contact person for this vendor. Maximum length: 25 characters. example: Doe type: string maxLength: 25 jobTitle: description: The job title of the contact person for this vendor. example: Purchasing Manager type: string billingAddress: description: The vendor's billing address. type: object properties: line1: description: >- The first line of the address (e.g., street, PO Box, or company name). Maximum length: 41 characters. example: Conductor Labs Inc. type: string maxLength: 41 line2: description: >- The second line of the address, if needed (e.g., apartment, suite, unit, or building). Maximum length: 41 characters. example: 540 Market St. type: string maxLength: 41 line3: description: |- The third line of the address, if needed. Maximum length: 41 characters. example: Suite 100 type: string maxLength: 41 line4: description: |- The fourth line of the address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 line5: description: |- The fifth line of the address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 city: description: >- The city, district, suburb, town, or village name of the address. Maximum length: 31 characters. example: San Francisco type: string maxLength: 31 state: description: >- The state, county, province, or region name of the address. Maximum length: 21 characters. example: CA type: string maxLength: 21 postalCode: description: |- The postal code or ZIP code of the address. Maximum length: 13 characters. example: '94110' type: string maxLength: 13 country: description: The country name of the address. example: United States type: string note: description: >- A note written at the bottom of the address in the form in which it appears, such as the invoice form. example: Conductor HQ type: string additionalProperties: false shippingAddress: description: The vendor's shipping address. type: object properties: line1: description: >- The first line of the address (e.g., street, PO Box, or company name). Maximum length: 41 characters. example: Conductor Labs Inc. type: string maxLength: 41 line2: description: >- The second line of the address, if needed (e.g., apartment, suite, unit, or building). Maximum length: 41 characters. example: 540 Market St. type: string maxLength: 41 line3: description: |- The third line of the address, if needed. Maximum length: 41 characters. example: Suite 100 type: string maxLength: 41 line4: description: |- The fourth line of the address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 line5: description: |- The fifth line of the address, if needed. Maximum length: 41 characters. example: '' type: string maxLength: 41 city: description: >- The city, district, suburb, town, or village name of the address. Maximum length: 31 characters. example: San Francisco type: string maxLength: 31 state: description: >- The state, county, province, or region name of the address. Maximum length: 21 characters. example: CA type: string maxLength: 21 postalCode: description: |- The postal code or ZIP code of the address. Maximum length: 13 characters. example: '94110' type: string maxLength: 13 country: description: The country name of the address. example: United States type: string note: description: >- A note written at the bottom of the address in the form in which it appears, such as the invoice form. example: Conductor HQ type: string additionalProperties: false phone: description: |- The vendor's primary telephone number. Maximum length: 21 characters. example: +1-555-123-4567 type: string maxLength: 21 alternatePhone: description: |- The vendor's alternate telephone number. Maximum length: 21 characters. example: +1-555-987-6543 type: string maxLength: 21 fax: description: |- The vendor's fax number. Maximum length: 21 characters. example: +1-555-555-1212 type: string maxLength: 21 email: description: The vendor's email address. example: vendor@example.com type: string ccEmail: description: >- An email address to carbon copy (CC) on communications with this vendor. example: manager@example.com type: string contact: description: The name of the primary contact person for this vendor. example: Jane Smith type: string alternateContact: description: The name of a alternate contact person for this vendor. example: Bob Johnson type: string customContactFields: description: >- Additional custom contact fields for this vendor, such as phone numbers or email addresses. minItems: 1 type: array items: type: object properties: name: type: string description: >- The name of the contact field (e.g., "old address", "secondary phone"). example: Main Phone value: type: string description: The value of the contact field. example: 555-123-4567 required: - name - value additionalProperties: false additionalContacts: description: Additional alternate contacts for this vendor. minItems: 1 type: array items: type: object properties: id: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of the contact to update. example: 80000001-1234567890 revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of the contact 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. example: '1721172183' salutation: description: >- The contact's formal salutation title that precedes their name, such as "Mr.", "Ms.", or "Dr.". example: Dr. type: string firstName: description: |- The contact's first name. Maximum length: 25 characters. example: John type: string maxLength: 25 middleName: description: |- The contact's middle name. Maximum length: 5 characters. example: A. type: string maxLength: 5 lastName: description: |- The contact's last name. Maximum length: 25 characters. example: Doe type: string maxLength: 25 jobTitle: description: The contact's job title. example: Purchasing Manager type: string customContactFields: description: >- Additional custom contact fields for this contact, such as phone numbers or email addresses. minItems: 1 type: array items: type: object properties: name: type: string description: >- The name of the contact field (e.g., "old address", "secondary phone"). example: Main Phone value: type: string description: The value of the contact field. example: 555-123-4567 required: - name - value additionalProperties: false required: - id - revisionNumber additionalProperties: false nameOnCheck: description: >- The vendor's name as it should appear on checks issued to this vendor. Maximum length: 41 characters. example: Acme Supplies Ltd. type: string maxLength: 41 accountNumber: description: >- The vendor's account number, which appears in the QuickBooks chart of accounts, reports, and graphs. Note that if the "Use Account Numbers" preference is turned off in QuickBooks, the account number may not be visible in the user interface, but it can still be set and retrieved through the API. example: '1010' type: string note: description: A note or comment about this vendor. example: Preferred vendor for office supplies. type: string additionalNotes: description: Additional notes about this vendor. minItems: 1 type: array items: type: object properties: id: description: The ID of the note to update. example: 1 type: number note: type: string description: The text of this note. example: This is a fun note. required: - id - note additionalProperties: false vendorTypeId: description: >- The vendor's type, used for categorizing vendors into meaningful segments, such as industry or region. example: 80000001-1234567890 type: string maxLength: 36 termsId: description: >- The vendor's payment terms, defining when payment is due and any applicable discounts. example: 80000001-1234567890 type: string maxLength: 36 creditLimit: description: >- The vendor's credit limit, represented as a decimal string. This is the maximum amount of money that can be spent being before billed by this vendor. If `null`, there is no credit limit. example: '5000.00' type: string taxIdentificationNumber: description: The vendor's tax identification number (e.g., EIN or SSN). example: 12-3456789 type: string isEligibleFor1099: description: >- Indicates whether this vendor is eligible to receive a 1099 form for tax reporting purposes. When `true`, then the fields `taxId` and `billingAddress` are required. example: true type: boolean billingRateId: description: >- The vendor's billing rate, used to override service item rates in time tracking activities. example: 80000001-1234567890 type: string maxLength: 36 salesTaxCodeId: description: >- The default sales-tax code for transactions with this vendor, determining whether the transactions are taxable or non-taxable. This can be overridden at the transaction or transaction-line level. 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. example: 80000001-1234567890 type: string maxLength: 36 salesTaxCountry: description: >- The country for which sales tax is collected for this vendor. example: us type: string enum: - australia - canada - uk - us isSalesTaxAgency: description: Indicates whether this vendor is a sales tax agency. example: false type: boolean salesTaxReturnId: description: >- The vendor's sales tax return information, used for tracking and reporting sales tax liabilities. example: 80000001-1234567890 type: string maxLength: 36 taxRegistrationNumber: description: >- The vendor's tax registration number, for use in Canada or the UK. example: GB123456789 type: string reportingPeriod: description: >- The vendor's tax reporting period, for use in Canada or the UK. example: quarterly type: string enum: - monthly - quarterly isTrackingPurchaseTax: description: >- Indicates whether tax is tracked on purchases for this vendor, for use in Canada or the UK. example: true type: boolean purchaseTaxAccountId: description: >- The account used for tracking taxes on purchases for this vendor, for use in Canada or the UK. example: 80000001-1234567890 type: string maxLength: 36 isTrackingSalesTax: description: >- Indicates whether tax is tracked on sales for this vendor, for use in Canada or the UK. example: true type: boolean salesTaxAccountId: description: >- The account used for tracking taxes on sales for this vendor, for use in Canada or the UK. example: 80000001-1234567890 type: string maxLength: 36 isCompoundingTax: description: >- Indicates whether tax is charged on top of tax for this vendor, for use in Canada or the UK. example: false type: boolean defaultExpenseAccountIds: description: >- The expense accounts to prefill when entering bills for this vendor. example: - 80000001-1234567890 minItems: 1 type: array items: type: string maxLength: 36 currencyId: description: >- The vendor's currency. For built-in currencies, the name and code are standard ISO 4217 international values. For user-defined currencies, all values are editable. example: 80000001-1234567890 type: string maxLength: 36 required: - revisionNumber additionalProperties: false responses: '200': description: Returns the updated vendor. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: $ref: '#/components/schemas/qbd_vendor' x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const vendor = await conductor.qbd.vendors.update('80000001-1234567890', { revisionNumber: '1721172183', conductorEndUserId: 'end_usr_1234567abcdefg', }); console.log(vendor.id); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) vendor = conductor.qbd.vendors.update( id="80000001-1234567890", revision_number="1721172183", conductor_end_user_id="end_usr_1234567abcdefg", ) print(vendor.id) /quickbooks-desktop/health-check: get: summary: Health check description: >- Checks whether the specified QuickBooks Desktop connection is active and can process requests end-to-end. This is useful for showing a "connection status" indicator in your app. If an error occurs, the typical Conductor error response will be returned. As with any request to QuickBooks Desktop, the health check may fail if the application is not running, the wrong company file is open, or if a modal dialog is open. Timeout is 60 seconds. security: - BearerAuth: [] parameters: - in: header name: Conductor-End-User-Id schema: type: string description: The ID of the End-User to receive this request. example: end_usr_1234567abcdefg x-stainless-naming: typescript: method_argument: conductorEndUserId mcp: method_argument: conductorEndUserId required: true description: The ID of the End-User to receive this request. responses: '200': description: >- Returns an object with the duration of the health check in milliseconds. If the health check fails, returns the standard Conductor error response. For end-user UI, prefer `error.userFacingMessage`; use `error.message` for logs, developer/admin surfaces, and test projects. headers: Conductor-Request-Id: required: true description: The unique identifier for this API request. schema: type: string description: The unique identifier for this API request. example: req_1234567abcdefg content: application/json: schema: type: object properties: duration: type: number description: >- The time, in milliseconds, that it took to perform the health check. example: 100 status: type: string const: ok description: The status of the health check. example: ok required: - duration - status additionalProperties: false x-codeSamples: - lang: JavaScript source: >- import Conductor from 'conductor-node'; const conductor = new Conductor({ apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted }); const response = await conductor.qbd.healthCheck({ conductorEndUserId: 'end_usr_1234567abcdefg' }); console.log(response.duration); - lang: Python source: |- import os from conductor import Conductor conductor = Conductor( api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted ) response = conductor.qbd.health_check( conductor_end_user_id="end_usr_1234567abcdefg", ) print(response.duration) components: schemas: Error: type: object properties: message: type: string description: >- The primary error message. Use this for logs, developer/admin surfaces, and debugging. example: 'Invalid API key provided: ''sk_live_...1234''' userFacingMessage: type: string description: >- The user-friendly error message intended for end-user UI. This value exists for _every_ error. It may match `error.message`, or it may mask details that are only useful to developers or administrators, such as invalid API keys, billing issues, or setup problems. In masked cases, it may say _"An internal server error occurred. Please try again."_ example: An internal server error occurred. Please try again. type: type: string enum: - INTEGRATION_ERROR - INTEGRATION_CONNECTION_ERROR - INVALID_REQUEST_ERROR - AUTHENTICATION_ERROR - PERMISSION_ERROR - INTERNAL_ERROR description: The type of error that occurred. example: AUTHENTICATION_ERROR code: type: string description: >- The unique error code from Conductor, which is useful for adding special handling for specific errors. E.g., `'RESOURCE_MISSING'`, `'API_KEY_INVALID'`, or `'QBD_REQUEST_ERROR'`. In contrast, the error field `type` is more general and categorizes the error. example: API_KEY_INVALID integrationCode: description: >- The unique error code supplied by the third-party integration for errors returned by the integration (e.g., QuickBooks Desktop) or integration connector (e.g., Web Connector). This is useful for adding special handling for specific errors from the third-party integration or connector. example: '0x80040420' type: string httpStatusCode: type: number description: The HTTP status code of the response that returned this error. example: 401 requestId: type: string description: >- The unique identifier for the request that returned this error. If you need to contact us about a specific request, providing the request identifier will ensure the fastest possible resolution. example: req_1234567890 required: - message - userFacingMessage - type - code - httpStatusCode - requestId additionalProperties: false auth_session: type: object properties: id: type: string description: The unique identifier for this auth session. example: auth_sess_1234567abcdefg objectType: description: The type of object. This value is always `"auth_session"`. example: auth_session type: string const: auth_session createdAt: description: The date and time when this auth session record was created. example: 2024-01-01T12:34:56.789Z type: string endUserId: type: string description: The ID of the end-user for whom to create an integration connection. example: end_usr_1234567abcdefg clientSecret: type: string description: >- The secret used in `authFlowUrl` to securely access the authentication flow. example: auth_sess_client_secret_1234567abcdefg authFlowUrl: type: string description: >- The URL of the authentication flow that you will pass to your client for your user to set up their integration connection. example: >- https://connect.conductor.is/qbd/auth_sess_client_secret_1234567abcdefg?key={{YOUR_PUBLISHABLE_KEY}} expiresAt: description: >- The date and time when this auth session expires. By default, this value is 30 minutes from creation. You can extend this time by setting `linkExpiryMins` when creating the auth session. example: 2024-01-01T12:34:56.789Z type: string redirectUrl: anyOf: - type: string - type: 'null' description: >- The URL to which Conductor will redirect your user to return to your app after they complete the authentication flow. If `null`, their browser tab will close instead. example: https://myapp.com/auth/callback required: - id - objectType - createdAt - endUserId - clientSecret - authFlowUrl - expiresAt - redirectUrl additionalProperties: false end_user: type: object properties: id: type: string description: >- The unique identifier for this end-user. You must save this value to your database because it is how you identify which of your users to receive your API requests. example: end_usr_1234567abcdefg objectType: description: The type of object. This value is always `"end_user"`. example: end_user type: string const: end_user createdAt: description: The date and time when this end-user record was created. example: 2024-01-01T12:34:56.789Z type: string companyName: type: string description: >- The end-user's company name that will be shown elsewhere in Conductor. example: Acme Inc. sourceId: type: string description: >- The end-user's unique identifier from your system. Maps users between your database and Conductor. example: 12345678-abcd-abcd-example-1234567890ab email: type: string description: The end-user's email address for identification purposes. example: bob@acme.com integrationConnections: type: array items: $ref: '#/components/schemas/integration_connection' description: The end-user's integration connections. required: - id - objectType - createdAt - companyName - sourceId - email - integrationConnections additionalProperties: false integration_connection: type: object properties: id: type: string description: The unique identifier for this integration connection. example: int_conn_1234567abcdefg objectType: description: The type of object. This value is always `"integration_connection"`. example: integration_connection type: string const: integration_connection createdAt: description: >- The date and time when this integration connection record was created. example: 2024-01-01T12:34:56.789Z type: string integrationSlug: type: string enum: - quickbooks_desktop description: The identifier of the third-party platform to integrate. lastRequestAt: anyOf: - type: string - type: 'null' description: >- The date and time of your last API request to this integration connection. example: 2024-01-01T12:34:56.789Z lastSuccessfulRequestAt: anyOf: - type: string - type: 'null' description: >- The date and time of your last *successful* API request to this integration connection. A successful request means the integration fully processed and returned a response without any errors end-to-end. example: 2024-01-01T12:34:56.789Z required: - id - objectType - createdAt - integrationSlug - lastRequestAt - lastSuccessfulRequestAt additionalProperties: false qbd_account_tax_line: type: object properties: taxLineId: type: number description: >- The identifier of the tax line associated with this account tax line. You can see a list of all available values for this field by calling the endpoint for account tax lines. example: 123 taxLineName: anyOf: - type: string - type: 'null' description: >- The name of the tax line associated with this account tax line, as it appears on the tax form. example: State Sales Tax required: - taxLineId - taxLineName additionalProperties: false title: The Account Tax Line object x-conductor-object-type: other summary: >- A tax line maps specific income and expense accounts to federal tax form lines for tax reporting purposes. qbd_account: type: object properties: id: type: string description: >- The unique identifier assigned by QuickBooks to this account. This ID is unique across all accounts but not across different QuickBooks object types. example: 80000001-1234567890 objectType: description: The type of object. This value is always `"qbd_account"`. example: qbd_account type: string const: qbd_account createdAt: type: string description: >- The date and time when this account 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. example: 2025-01-01T12:34:56.000Z updatedAt: type: string description: >- The date and time when this account 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. example: 2025-02-01T12:34:56.000Z revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of this account 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. example: '1721172183' name: type: string description: >- The case-insensitive name of this account. Not guaranteed to be unique because it does not include the names of its hierarchical parent objects like `fullName` does. For example, two accounts could both have the `name` "Accounts-Payable", but they could have unique `fullName` values, such as "Corporate:Accounts-Payable" and "Finance:Accounts-Payable". example: Accounts-Payable fullName: type: string description: >- The case-insensitive fully-qualified unique name of this account, formed by combining the names of its hierarchical parent objects with its own `name`, separated by colons. For example, if an account is under "Corporate" and has the `name` "Accounts-Payable", its `fullName` would be "Corporate:Accounts-Payable". **NOTE**: Unlike `name`, `fullName` is guaranteed to be unique across all account objects. However, `fullName` can still be arbitrarily changed by the QuickBooks user when they modify the underlying `name` field. example: Corporate:Accounts-Payable isActive: type: boolean description: >- Indicates whether this account is active. Inactive objects are typically hidden from views and reports in QuickBooks. Defaults to `true`. example: true parent: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The parent account one level above this one in the hierarchy. For example, if this account has a `fullName` of "Corporate:Accounts-Payable", its parent has a `fullName` of "Corporate". If this account is at the top level, this field will be `null`. example: id: 80000001-1234567890 fullName: Corporate sublevel: type: number description: >- The depth level of this account in the hierarchy. A top-level account has a `sublevel` of 0; each subsequent sublevel increases this number by 1. For example, an account with a `fullName` of "Corporate:Accounts-Payable" would have a `sublevel` of 1. example: 1 accountType: type: string enum: - accounts_payable - accounts_receivable - bank - cost_of_goods_sold - credit_card - equity - expense - fixed_asset - income - long_term_liability - non_posting - other_asset - other_current_asset - other_current_liability - other_expense - other_income description: >- The classification of this account, indicating its purpose within the chart of accounts. **NOTE**: You cannot create an account of type `non_posting` through the API because QuickBooks creates these accounts behind the scenes. example: bank specialAccountType: anyOf: - type: string enum: - accounts_payable - accounts_receivable - condense_item_adjustment_expenses - cost_of_goods_sold - direct_deposit_liabilities - estimates - exchange_gain_loss - inventory_assets - item_receipt_account - opening_balance_equity - payroll_expenses - payroll_liabilities - petty_cash - purchase_orders - reconciliation_differences - retained_earnings - sales_orders - sales_tax_payable - uncategorized_expenses - uncategorized_income - undeposited_funds - type: 'null' description: >- Indicates if this account is a special account automatically created by QuickBooks for specific purposes. example: undeposited_funds isTaxAccount: anyOf: - type: boolean - type: 'null' description: Indicates whether this account is used for tracking taxes. example: true accountNumber: anyOf: - type: string - type: 'null' description: >- The account's account number, which appears in the QuickBooks chart of accounts, reports, and graphs. Note that if the "Use Account Numbers" preference is turned off in QuickBooks, the account number may not be visible in the user interface, but it can still be set and retrieved through the API. example: '1010' bankAccountNumber: anyOf: - type: string - type: 'null' description: >- The bank account number or identifying note for this account. Access to this field may be restricted based on permissions. example: '123456789' description: anyOf: - type: string - type: 'null' description: A description of this account. example: >- Accounts-payable are the amounts owed to suppliers for goods and services purchased on credit. balance: anyOf: - type: string - type: 'null' description: >- The current balance of this account only, excluding balances from any subordinate accounts, represented as a decimal string. Compare with `totalBalance`. Note that income accounts and balance sheet accounts may not have balances. example: '1000.00' totalBalance: anyOf: - type: string - type: 'null' description: >- The combined balance of this account and all its sub-accounts, represented as a decimal string. For example, the `totalBalance` for XYZ Bank would be the total of the balances of all its sub-accounts (checking, savings, and so on). If XYZ Bank did not have any sub-accounts, `totalBalance` and `balance` would be the same. example: '5000.00' salesTaxCode: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The default sales-tax code for transactions with this account, determining whether the transactions are taxable or non-taxable. This can be overridden at the transaction or transaction-line level. 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. example: id: 80000001-1234567890 fullName: Non taxLineDetails: anyOf: - $ref: '#/components/schemas/qbd_tax_line_info' - type: 'null' description: The account's tax line details, used for tax reporting purposes. cashFlowClassification: anyOf: - type: string enum: - financing - investing - none - not_applicable - operating - type: 'null' description: >- Indicates how this account is classified for cash flow reporting. If `none`, the account has not been classified. If `not_applicable`, the account does not qualify to be classified (e.g., a bank account tracking cash transactions is not part of a cash flow report). example: operating currency: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The account's currency. For built-in currencies, the name and code are standard ISO 4217 international values. For user-defined currencies, all values are editable. example: id: 80000001-1234567890 fullName: USD customFields: type: array items: $ref: '#/components/schemas/qbd_custom_field' description: >- The custom fields for the account object, added as user-defined data extensions, not included in the standard QuickBooks object. required: - id - objectType - createdAt - updatedAt - revisionNumber - name - fullName - isActive - parent - sublevel - accountType - specialAccountType - isTaxAccount - accountNumber - bankAccountNumber - description - balance - totalBalance - salesTaxCode - taxLineDetails - cashFlowClassification - currency - customFields additionalProperties: false title: The Account object x-conductor-object-type: other summary: >- An account in QuickBooks Desktop represents a financial account used to track money and transactions. It can be customized with features like hierarchical sub-accounts, account numbers, and opening balances. Accounts form the foundation of the chart of accounts and can represent various types like bank accounts, credit cards, income, expense, and other financial categories. qbd_tax_line_info: type: object properties: taxLineId: type: number description: >- The identifier of the tax line associated with this account. You can see a list of all available values for this field by calling the endpoint for account tax lines. example: 123 taxLineName: anyOf: - type: string - type: 'null' description: >- The name of the tax line associated with this account, as it appears on the tax form. example: State Sales Tax required: - taxLineId - taxLineName additionalProperties: false title: The Tax Line Info object x-conductor-object-type: nested qbd_custom_field: type: object properties: ownerId: type: string description: >- 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. example: '0' name: type: string description: >- 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. example: Customer Rating type: type: string enum: - amount_type - date_time_type - integer_type - percent_type - price_type - quantity_type - string_1024_type - string_255_type description: The data type of this custom field. example: string_1024_type value: type: string description: >- The value of this custom field. The maximum length depends on the field's data type. example: Premium required: - ownerId - name - type - value additionalProperties: false title: The Custom Field object x-conductor-object-type: nested qbd_bill_check_payment: type: object properties: id: type: string description: >- The unique identifier assigned by QuickBooks to this bill check payment. This ID is unique across all transaction types. example: 123ABC-1234567890 objectType: description: The type of object. This value is always `"qbd_bill_check_payment"`. example: qbd_bill_check_payment type: string const: qbd_bill_check_payment createdAt: type: string description: >- The date and time when this bill check payment 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. example: 2025-01-01T12:34:56.000Z updatedAt: type: string description: >- The date and time when this bill check payment 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. example: 2025-02-01T12:34:56.000Z revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of this bill check payment 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. example: '1721172183' vendor: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The vendor who sent the bill(s) that this bill check payment is paying and who will receive this payment. **IMPORTANT**: This vendor must match the `vendor` on the bill(s) specified in `applyToTransactions`. example: id: 80000001-1234567890 fullName: Suppliers:ABC Office Supplies payablesAccount: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The Accounts-Payable (A/P) account to which this bill check payment is assigned, used for accounts-payable tracking. **IMPORTANT**: If this bill check payment is linked to other transactions, this A/P account must match the `payablesAccount` used in those other transactions. example: id: 80000001-1234567890 fullName: Accounts-Payable transactionDate: type: string format: date description: >- The date of this bill check payment, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-01' bankAccount: type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false description: >- The bank account from which the funds are being drawn for this bill check payment; e.g., Checking or Savings. This bill check payment will decrease the balance of this account. example: id: 80000001-1234567890 fullName: Checking amount: type: string description: >- The monetary amount of this bill check payment, represented as a decimal string. example: '1000.00' currency: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The bill check payment's currency. For built-in currencies, the name and code are standard ISO 4217 international values. For user-defined currencies, all values are editable. example: id: 80000001-1234567890 fullName: USD exchangeRate: anyOf: - type: number - type: 'null' description: >- The market exchange rate between this bill check payment'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: 1.2345 amountInHomeCurrency: anyOf: - type: string - type: 'null' description: >- The monetary amount of this bill check payment converted to the home currency of the QuickBooks company file. Represented as a decimal string. example: '1234.56' refNumber: anyOf: - type: string - type: 'null' description: >- The case-sensitive user-defined reference number for this bill check payment, 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. **IMPORTANT**: For checks, this field is the check number. example: CHECK-1234 memo: anyOf: - type: string - type: 'null' description: A memo or note for this bill check payment. example: Payment for office supplies - Invoice INV-1234 address: anyOf: - $ref: '#/components/schemas/qbd_address' - type: 'null' description: The address that is printed on the bill check payment. isQueuedForPrint: anyOf: - type: boolean description: >- Indicates whether this bill check payment is included in the queue of documents for QuickBooks to print. example: true - type: 'null' externalId: anyOf: - type: string description: >- 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: 12345678-abcd-1234-abcd-1234567890ab - type: 'null' appliedToTransactions: type: array items: $ref: '#/components/schemas/qbd_target_transaction' description: The bill(s) paid by this bill check payment. customFields: type: array items: $ref: '#/components/schemas/qbd_custom_field' description: >- The custom fields for the bill check payment object, added as user-defined data extensions, not included in the standard QuickBooks object. required: - id - objectType - createdAt - updatedAt - revisionNumber - vendor - payablesAccount - transactionDate - bankAccount - amount - currency - exchangeRate - amountInHomeCurrency - refNumber - memo - address - isQueuedForPrint - externalId - appliedToTransactions - customFields additionalProperties: false title: The Bill Check Payment object x-conductor-object-type: transaction summary: >- A bill check payment records a payment made by check to pay off one or more vendor bills. It reduces accounts payable and decreases the bank account balance. This transaction links the original bill(s) with the payment, allowing QuickBooks to track which bills have been paid and maintain accurate vendor balances. qbd_address: type: object properties: line1: anyOf: - type: string - type: 'null' description: >- The first line of the address (e.g., street, PO Box, or company name). example: Conductor Labs Inc. line2: anyOf: - type: string - type: 'null' description: >- The second line of the address, if needed (e.g., apartment, suite, unit, or building). example: 540 Market St. line3: anyOf: - type: string - type: 'null' description: The third line of the address, if needed. example: Suite 100 line4: anyOf: - type: string - type: 'null' description: The fourth line of the address, if needed. example: '' line5: anyOf: - type: string - type: 'null' description: The fifth line of the address, if needed. example: '' city: anyOf: - type: string - type: 'null' description: The city, district, suburb, town, or village name of the address. example: San Francisco state: anyOf: - type: string - type: 'null' description: The state, county, province, or region name of the address. example: CA postalCode: anyOf: - type: string - type: 'null' description: The postal code or ZIP code of the address. example: '94110' country: anyOf: - type: string - type: 'null' description: The country name of the address. example: United States note: anyOf: - type: string - type: 'null' description: >- A note written at the bottom of the address in the form in which it appears, such as the invoice form. example: Conductor HQ required: - line1 - line2 - line3 - line4 - line5 - city - state - postalCode - country - note additionalProperties: false title: The Address object x-conductor-object-type: nested qbd_target_transaction: type: object properties: transactionId: type: string maxLength: 36 description: The ID of the target transaction to which this payment is applied. example: 123ABC-1234567890 transactionType: type: string enum: - 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 description: The type of transaction for this target transaction. example: invoice transactionDate: anyOf: - type: string format: date - type: 'null' description: >- The date of this target transaction, in ISO 8601 format (YYYY-MM-DD). example: 2024-10-01T00:00:00.000Z refNumber: anyOf: - type: string - type: 'null' description: >- The case-sensitive user-defined reference number for this target 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. example: TXN-1234 balanceRemaining: anyOf: - type: string - type: 'null' description: >- The outstanding balance of this target transaction after applying any credits or payments. Represented as a decimal string. example: '100.00' amount: anyOf: - type: string - type: 'null' description: >- The monetary amount of this target transaction, represented as a decimal string. example: '1000.00' discountAmount: anyOf: - type: string - type: 'null' description: >- The monetary amount by which to reduce this target transaction's balance, represented as a decimal string. example: '50.00' discountAccount: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The financial account used to track this target transaction's discount. example: id: 80000001-1234567890 fullName: Discount Account discountClass: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: The class used to track this target transaction's discount. example: id: 80000001-1234567890 fullName: Discounts linkedTransactions: type: array items: $ref: '#/components/schemas/qbd_linked_transaction' description: >- The target transaction'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 target transactions to receive this field because it is not returned by default. required: - transactionId - transactionType - transactionDate - refNumber - balanceRemaining - amount - discountAmount - discountAccount - discountClass - linkedTransactions additionalProperties: false title: The Target Transaction object x-conductor-object-type: nested qbd_linked_transaction: type: object properties: id: type: string description: >- The unique identifier assigned by QuickBooks to this linked transaction. This ID is unique across all transaction types. example: 123ABC-1234567890 objectType: description: The type of object. This value is always `"qbd_linked_transaction"`. example: qbd_linked_transaction type: string const: qbd_linked_transaction transactionType: type: string enum: - 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 description: The type of transaction for this linked transaction. example: invoice transactionDate: type: string format: date description: >- The date of this linked transaction, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-01' refNumber: anyOf: - type: string - type: 'null' description: >- 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. example: LINK-1234 linkType: anyOf: - type: string enum: - amount - quantity - type: 'null' description: >- 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). example: amount amount: anyOf: - type: string - type: 'null' description: >- The monetary amount of this linked transaction, represented as a decimal string. example: '1000.00' required: - id - objectType - transactionType - transactionDate - refNumber - linkType - amount additionalProperties: false title: The Linked Transaction object x-conductor-object-type: nested qbd_bill_credit_card_payment: type: object properties: id: type: string description: >- The unique identifier assigned by QuickBooks to this bill credit card payment. This ID is unique across all transaction types. example: 123ABC-1234567890 objectType: description: >- The type of object. This value is always `"qbd_bill_credit_card_payment"`. example: qbd_bill_credit_card_payment type: string const: qbd_bill_credit_card_payment createdAt: type: string description: >- The date and time when this bill credit card payment 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. example: 2025-01-01T12:34:56.000Z updatedAt: type: string description: >- The date and time when this bill credit card payment 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. example: 2025-02-01T12:34:56.000Z revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of this bill credit card payment 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. example: '1721172183' vendor: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The vendor who sent the bill(s) that this bill credit card payment is paying and who will receive this payment. **IMPORTANT**: This vendor must match the `vendor` on the bill(s) specified in `applyToTransactions`. example: id: 80000001-1234567890 fullName: Suppliers:ABC Office Supplies payablesAccount: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The Accounts-Payable (A/P) account to which this bill credit card payment is assigned, used for accounts-payable tracking. **IMPORTANT**: If this bill credit card payment is linked to other transactions, this A/P account must match the `payablesAccount` used in those other transactions. example: id: 80000001-1234567890 fullName: Accounts-Payable transactionDate: type: string format: date description: >- The date of this bill credit card payment, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-01' creditCardAccount: type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false description: >- The credit card account to which this bill credit card payment is being charged. This bill credit card payment will decrease the balance of this account. example: id: 80000001-1234567890 fullName: Credit Card amount: type: string description: >- The monetary amount of this bill credit card payment, represented as a decimal string. example: '1000.00' currency: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The bill credit card payment's currency. For built-in currencies, the name and code are standard ISO 4217 international values. For user-defined currencies, all values are editable. example: id: 80000001-1234567890 fullName: USD exchangeRate: anyOf: - type: number - type: 'null' description: >- The market exchange rate between this bill credit card payment'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: 1.2345 amountInHomeCurrency: anyOf: - type: string - type: 'null' description: >- The monetary amount of this bill credit card payment converted to the home currency of the QuickBooks company file. Represented as a decimal string. example: '1234.56' refNumber: anyOf: - type: string - type: 'null' description: >- The case-sensitive user-defined reference number for this bill credit card payment, 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. example: CARD-1234 memo: anyOf: - type: string - type: 'null' description: A memo or note for this bill credit card payment. example: Payment for office supplies - Invoice INV-1234 externalId: anyOf: - type: string description: >- 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: 12345678-abcd-1234-abcd-1234567890ab - type: 'null' appliedToTransactions: type: array items: $ref: '#/components/schemas/qbd_target_transaction' description: The bill(s) paid by this bill credit card payment. customFields: type: array items: $ref: '#/components/schemas/qbd_custom_field' description: >- The custom fields for the bill credit card payment object, added as user-defined data extensions, not included in the standard QuickBooks object. required: - id - objectType - createdAt - updatedAt - revisionNumber - vendor - payablesAccount - transactionDate - creditCardAccount - amount - currency - exchangeRate - amountInHomeCurrency - refNumber - memo - externalId - appliedToTransactions - customFields additionalProperties: false title: The Bill Credit Card Payment object x-conductor-object-type: transaction summary: >- A bill credit card payment records a payment made via credit card to pay off one or more vendor bills. It reduces accounts payable and increases the credit card account balance. This transaction links the original bill(s) with the payment, allowing QuickBooks to track which bills have been paid and maintain accurate vendor balances. qbd_bill: type: object properties: id: type: string description: >- The unique identifier assigned by QuickBooks to this bill. This ID is unique across all transaction types. example: 123ABC-1234567890 objectType: description: The type of object. This value is always `"qbd_bill"`. example: qbd_bill type: string const: qbd_bill createdAt: type: string description: >- The date and time when this bill 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. example: 2025-01-01T12:34:56.000Z updatedAt: type: string description: >- The date and time when this bill 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. example: 2025-02-01T12:34:56.000Z revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of this bill 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. example: '1721172183' vendor: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: The vendor who sent this bill for goods or services purchased. example: id: 80000001-1234567890 fullName: Acme Supplies Ltd. vendorAddress: anyOf: - $ref: '#/components/schemas/qbd_address' - type: 'null' description: The address of the vendor who sent this bill. payablesAccount: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The Accounts-Payable (A/P) account to which this bill is assigned, used for accounts-payable tracking. **IMPORTANT**: If this bill is linked to other transactions, this A/P account must match the `payablesAccount` used in those other transactions. example: id: 80000001-1234567890 fullName: Accounts-Payable transactionDate: type: string format: date description: The date of this bill, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-01' dueDate: anyOf: - type: string format: date - type: 'null' description: >- The date by which this bill must be paid, in ISO 8601 format (YYYY-MM-DD). example: 2024-10-31T00:00:00.000Z amountDue: anyOf: - type: string - type: 'null' description: >- The total monetary amount due for this bill, represented as a decimal string. This equals the sum of the amounts in the bill's expense lines, item lines, and item group lines. The amount due minus any credits or discounts equals the open amount. example: '1000.00' currency: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The bill's currency. For built-in currencies, the name and code are standard ISO 4217 international values. For user-defined currencies, all values are editable. example: id: 80000001-1234567890 fullName: USD exchangeRate: anyOf: - type: number - type: 'null' description: >- The market exchange rate between this bill'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: 1.2345 amountDueInHomeCurrency: anyOf: - type: string - type: 'null' description: >- The monetary amount due for this bill converted to the home currency of the QuickBooks company file. Represented as a decimal string. example: '1234.56' refNumber: anyOf: - type: string - type: 'null' description: >- The case-sensitive user-defined reference number for this bill, 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. example: BILL-1234 isPending: anyOf: - type: boolean - type: 'null' description: >- Indicates whether this bill has not been completed or is in a draft version. example: false terms: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The bill's payment terms, defining when payment is due and any applicable discounts. example: id: 80000001-1234567890 fullName: Net 30 memo: anyOf: - type: string - type: 'null' description: >- A memo or note for this bill that appears in the Accounts-Payable register and in reports that include this bill. example: Office supplies for September salesTaxCode: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The sales-tax code for this bill, 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 bill'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. example: id: 80000001-1234567890 fullName: Non isPaid: anyOf: - type: boolean - type: 'null' description: >- Indicates whether this bill has been paid in full. When `true`, `openAmount` will be 0. example: false externalId: anyOf: - type: string description: >- 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: 12345678-abcd-1234-abcd-1234567890ab - type: 'null' linkedTransactions: type: array items: $ref: '#/components/schemas/qbd_linked_transaction' description: >- The bill'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 bills to receive this field because it is not returned by default. expenseLines: type: array items: $ref: '#/components/schemas/qbd_expense_line' description: >- The bill's expense lines, each representing one line in this expense. itemLines: type: array items: $ref: '#/components/schemas/qbd_item_line' description: >- The bill's item lines, each representing the purchase of a specific item or service. itemGroupLines: type: array items: $ref: '#/components/schemas/qbd_item_group_line_item' description: >- The bill's item group lines, each representing a predefined set of items bundled together because they are commonly purchased together or grouped for faster entry. openAmount: anyOf: - type: string - type: 'null' description: >- The remaining amount still owed on this bill, represented as a decimal string. This equals the bill's amount minus any credits or discounts. **NOTE**: Two rare QuickBooks Desktop behaviors can make `openAmount` unreliable on bills: - `openAmount` can be omitted from bill query responses. - A known QuickBooks Desktop bug can cause `openAmount` to reflect the vendor's aggregate open accounts-payable balance rather than the documented remaining balance for that individual bill. If you need the amount currently payable on each open bill, use Conductor's `/quickbooks-desktop/bills-to-pay` endpoint and read `bill.amountDue` instead of relying on `openAmount` from the Conductor bills endpoint. The bills-to-pay endpoint is not a general replacement for the Conductor bills endpoint, because it is scoped to open bills and available credits for a vendor and returns bill-payment data rather than full bill records. If you cannot use `/quickbooks-desktop/bills-to-pay` and must derive a fallback from Conductor bills endpoint results, re-query the bills with `includeLinkedTransactions=true` and compute a best-effort open amount as `amountDue` plus the sum of signed `linkedTransactions[].amount` values for all entries where `linkedTransactions[].linkType` is `"amount"`. example: '500.00' customFields: type: array items: $ref: '#/components/schemas/qbd_custom_field' description: >- The custom fields for the bill object, added as user-defined data extensions, not included in the standard QuickBooks object. required: - id - objectType - createdAt - updatedAt - revisionNumber - vendor - vendorAddress - payablesAccount - transactionDate - dueDate - amountDue - currency - exchangeRate - amountDueInHomeCurrency - refNumber - isPending - terms - memo - salesTaxCode - isPaid - externalId - linkedTransactions - expenseLines - itemLines - itemGroupLines - openAmount - customFields additionalProperties: false title: The Bill object x-conductor-object-type: transaction summary: >- A bill represents an obligation to pay a vendor for goods or services received. It records the amount owed, due date, and payment terms, and increases accounts payable. Bills can be partially paid over time and may be linked to purchase orders. qbd_expense_line: type: object properties: id: anyOf: - type: string - type: 'null' description: >- The unique identifier assigned by QuickBooks to this expense line. This ID is unique across all transaction line types. If QuickBooks omits the identifier, this is null. example: 456DEF-1234567890 objectType: description: The type of object. This value is always `"qbd_expense_line"`. example: qbd_expense_line type: string const: qbd_expense_line account: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The expense account being debited (increased) for this expense line. The corresponding account being credited is usually a liability account (e.g., Accounts-Payable) or an asset account (e.g., Cash), depending on the transaction type. example: id: 80000001-1234567890 fullName: Expenses:Office Supplies amount: anyOf: - type: string - type: 'null' description: >- The monetary amount of this expense line, represented as a decimal string. example: '1000.00' memo: anyOf: - type: string - type: 'null' description: A memo or note for this expense line. example: New office chair payee: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- 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). example: id: 80000001-1234567890 fullName: Acme Corporation class: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The expense 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 expense lines unless overridden here, at the transaction line level. example: id: 80000001-1234567890 fullName: Office Supplies salesTaxCode: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The sales-tax code for this expense 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. example: id: 80000001-1234567890 fullName: Non billingStatus: anyOf: - type: string enum: - billable - has_been_billed - not_billable - type: 'null' description: The billing status of this expense line. example: billable salesRepresentative: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The expense line's sales representative. Sales representatives can be employees, vendors, or other names in QuickBooks. example: id: 80000001-1234567890 fullName: Jane Doe customFields: type: array items: $ref: '#/components/schemas/qbd_custom_field' description: >- The custom fields for the expense line object, added as user-defined data extensions, not included in the standard QuickBooks object. required: - id - objectType - account - amount - memo - payee - class - salesTaxCode - billingStatus - salesRepresentative - customFields additionalProperties: false title: The Expense Line object x-conductor-object-type: nested qbd_item_line: type: object properties: id: type: string description: >- The unique identifier assigned by QuickBooks to this item line. This ID is unique across all transaction line types. example: 456DEF-1234567890 objectType: description: The type of object. This value is always `"qbd_item_line"`. example: qbd_item_line type: string const: qbd_item_line item: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The item associated with this item 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. example: id: 80000001-1234567890 fullName: Widget A inventorySite: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The site location where inventory for the item associated with this item line is stored. example: id: 80000001-1234567890 fullName: Main Warehouse inventorySiteLocation: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The specific location (e.g., bin or shelf) within the inventory site where the item associated with this item line is stored. example: id: 80000001-1234567890 fullName: Aisle 3, Shelf B serialNumber: anyOf: - type: string - type: 'null' description: >- The serial number of the item associated with this item line. This is used for tracking individual units of serialized inventory items. example: SN1234567890 lotNumber: anyOf: - type: string - type: 'null' description: >- The lot number of the item associated with this item line. Used for tracking groups of inventory items that are purchased or manufactured together. example: LOT2023-001 expirationDate: anyOf: - type: string format: date - type: 'null' description: >- The expiration date for the serial number or lot number of the item associated with this item line, in ISO 8601 format (YYYY-MM-DD). This is particularly relevant for perishable or time-sensitive inventory items. Note that this field is only supported on QuickBooks Desktop 2023 or later. example: 2025-12-31T00:00:00.000Z description: anyOf: - type: string - type: 'null' description: A description of this item line. example: High-quality widget with custom engraving quantity: anyOf: - type: number - type: 'null' description: >- The quantity of the item associated with this item line. This field cannot be cleared. **NOTE**: Do not use this field if the associated item is a discount item. example: 5 unitOfMeasure: anyOf: - type: string - type: 'null' description: >- The unit-of-measure used for the `quantity` in this item line. Must be a valid unit within the item's available units of measure. example: Each overrideUnitOfMeasureSet: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- Specifies an alternative unit-of-measure set when updating this item 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. example: id: 80000001-1234567890 fullName: Volume Units cost: anyOf: - type: string - type: 'null' description: >- The cost of this item line, represented as a decimal string. If both `quantity` and `amount` are specified but not `cost`, QuickBooks will use them to calculate `cost`. example: '1000.00' amount: anyOf: - type: string - type: 'null' description: >- The monetary amount of this item line, represented as a decimal string. If both `quantity` and `cost` are specified but not `amount`, QuickBooks will use them to calculate `amount`. If `amount`, `cost`, and `quantity` are all unspecified, then QuickBooks will calculate `amount` based on a `quantity` of `1` and the suggested `cost`. This field cannot be cleared. example: '1000.00' customer: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: The customer or customer-job associated with this item line. example: id: 80000001-1234567890 fullName: Acme Corporation class: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The item 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 item lines unless overridden here, at the transaction line level. example: id: 80000001-1234567890 fullName: Installation:Residential salesTaxCode: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The sales-tax code for this item 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. example: id: 80000001-1234567890 fullName: Non billingStatus: anyOf: - type: string enum: - billable - has_been_billed - not_billable - type: 'null' description: The billing status of this item line. example: billable salesRepresentative: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The item line's sales representative. Sales representatives can be employees, vendors, or other names in QuickBooks. example: id: 80000001-1234567890 fullName: Jane Doe customFields: type: array items: $ref: '#/components/schemas/qbd_custom_field' description: >- The custom fields for the item line object, added as user-defined data extensions, not included in the standard QuickBooks object. required: - id - objectType - item - inventorySite - inventorySiteLocation - serialNumber - lotNumber - expirationDate - description - quantity - unitOfMeasure - overrideUnitOfMeasureSet - cost - amount - customer - class - salesTaxCode - billingStatus - salesRepresentative - customFields additionalProperties: false title: The Item Line object x-conductor-object-type: nested qbd_item_group_line_item: type: object properties: id: type: string description: >- The unique identifier assigned by QuickBooks to this item group line. This ID is unique across all transaction line types. example: 456DEF-1234567890 objectType: description: The type of object. This value is always `"qbd_item_group_line"`. example: qbd_item_group_line type: string const: qbd_item_group_line itemGroup: type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false description: >- The item group line's item group, representing a predefined set of items bundled because they are commonly purchased together or grouped for faster entry. example: id: 80000001-1234567890 fullName: Office Supplies Bundle description: anyOf: - type: string - type: 'null' description: A description of this item group line. example: Standard widget bulk package quantity: anyOf: - type: number - type: 'null' description: >- The quantity of the item group associated with this item group line. This field cannot be cleared. **NOTE**: Do not use this field if the associated item group is a discount item group. example: 5 unitOfMeasure: anyOf: - type: string - type: 'null' description: >- The unit-of-measure used for the `quantity` in this item group line. Must be a valid unit within the item's available units of measure. example: Each overrideUnitOfMeasureSet: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- Specifies an alternative unit-of-measure set when updating this item group 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. example: id: 80000001-1234567890 fullName: Volume Units totalAmount: type: string description: >- The total monetary amount of this item group line, equivalent to the sum of the amounts in `lines`, represented as a decimal string. example: '1000.00' itemLines: type: array items: $ref: '#/components/schemas/qbd_item_line' description: >- The item group line's item lines, each representing the purchase of a specific item or service. customFields: type: array items: $ref: '#/components/schemas/qbd_custom_field' description: >- The custom fields for the item group line object, added as user-defined data extensions, not included in the standard QuickBooks object. required: - id - objectType - itemGroup - description - quantity - unitOfMeasure - overrideUnitOfMeasureSet - totalAmount - itemLines - customFields additionalProperties: false title: The Item Group Line object x-conductor-object-type: nested qbd_bill_to_pay: type: object properties: bill: anyOf: - $ref: '#/components/schemas/qbd_payable_bill' - type: 'null' description: >- The open bill with a positive amount due that can be paid for the requested vendor. In each bills-to-pay result, either `bill` is an object and `credit` is `null`, or `credit` is an object and `bill` is `null`. credit: anyOf: - $ref: '#/components/schemas/qbd_applicable_credit' - type: 'null' description: >- The vendor credit linked to the requested vendor that can be applied to open bills. In each bills-to-pay result, either `credit` is an object and `bill` is `null`, or `bill` is an object and `credit` is `null`. required: - bill - credit additionalProperties: false title: The Bill To Pay object x-conductor-object-type: transaction x-conductor-sidebar-group-name: Bills to Pay summary: >- Bills to pay are open vendor bills and available vendor credits returned by QuickBooks Desktop for a specific vendor. Use these records when deciding which bills and credits to include in bill check payments or bill credit card payments. qbd_payable_bill: type: object properties: billId: type: string maxLength: 36 description: >- The ID of the open bill available to pay. Pass this value as `transactionId` in a bill-payment `applyToTransactions` entry. example: 123ABC-1234567890 transactionType: type: string enum: - 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 description: The type of transaction for this payable bill. example: bill payablesAccount: type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false description: >- The Accounts-Payable (A/P) account to which this payable bill is assigned, used for accounts-payable tracking. **IMPORTANT**: If this payable bill is linked to other transactions, this A/P account must match the `payablesAccount` used in those other transactions. example: id: 80000001-1234567890 fullName: Accounts-Payable transactionDate: type: string format: date description: The date of this payable bill, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-01' refNumber: anyOf: - type: string - type: 'null' description: >- The case-sensitive user-defined reference number for this payable bill, 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. example: BILL-1234 dueDate: anyOf: - type: string format: date - type: 'null' description: >- The date by which this payable bill must be paid, in ISO 8601 format (YYYY-MM-DD). example: 2024-10-31T00:00:00.000Z amountDue: type: string description: >- The amount QuickBooks Desktop reports as due and available to pay for this open bill, represented as a decimal string. Use this value as the candidate `applyToTransactions[].paymentAmount` when creating a bill payment; reduce the payment by any credits you apply. example: '1000.00' currency: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The payable bill's currency. For built-in currencies, the name and code are standard ISO 4217 international values. For user-defined currencies, all values are editable. example: id: 80000001-1234567890 fullName: USD exchangeRate: anyOf: - type: number - type: 'null' description: >- The market exchange rate between this payable bill'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: 1.2345 amountDueInHomeCurrency: anyOf: - type: string - type: 'null' description: >- The monetary amount due for this payable bill converted to the home currency of the QuickBooks company file. Represented as a decimal string. example: '1234.56' required: - billId - transactionType - payablesAccount - transactionDate - refNumber - dueDate - amountDue - currency - exchangeRate - amountDueInHomeCurrency additionalProperties: false title: The Payable Bill object x-conductor-object-type: nested qbd_applicable_credit: type: object properties: creditTransactionId: type: string maxLength: 36 description: >- The ID of the credit transaction available to apply to the vendor's open bills. To apply this credit in a bill-payment request, place it under the target bill's `applyToTransactions[].applyCredits[]` entry and pass this value as `creditTransactionId`. example: 123ABC-1234567890 transactionType: type: string enum: - 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 description: The type of transaction for this applicable credit. example: vendor_credit payablesAccount: type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false description: >- The Accounts-Payable (A/P) account to which this applicable credit is assigned, used for accounts-payable tracking. **IMPORTANT**: If this applicable credit is linked to other transactions, this A/P account must match the `payablesAccount` used in those other transactions. example: id: 80000001-1234567890 fullName: Accounts-Payable transactionDate: type: string format: date description: The date of this applicable credit, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-01' refNumber: anyOf: - type: string - type: 'null' description: >- The case-sensitive user-defined reference number for this applicable credit, 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. example: CREDIT-1234 creditRemaining: type: string description: >- The remaining vendor credit available to apply to open bills, represented as a decimal string. When applying this credit to a bill-payment request, choose an `applyToTransactions[].applyCredits[].appliedAmount` that does not exceed this value or the target bill's remaining amount due. example: '25.11' currency: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The applicable credit's currency. For built-in currencies, the name and code are standard ISO 4217 international values. For user-defined currencies, all values are editable. example: id: 80000001-1234567890 fullName: USD exchangeRate: anyOf: - type: number - type: 'null' description: >- The market exchange rate between this applicable credit'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: 1.2345 creditRemainingInHomeCurrency: anyOf: - type: string - type: 'null' description: >- The remaining balance of this applicable credit converted to the home currency of the QuickBooks company file. Represented as a decimal string. example: '25.11' required: - creditTransactionId - transactionType - payablesAccount - transactionDate - refNumber - creditRemaining - currency - exchangeRate - creditRemainingInHomeCurrency additionalProperties: false title: The Applicable Credit object x-conductor-object-type: nested qbd_build_assembly: type: object properties: id: type: string description: >- The unique identifier assigned by QuickBooks to this build assembly. This ID is unique across all transaction types. example: 123ABC-1234567890 objectType: description: The type of object. This value is always `"qbd_build_assembly"`. example: qbd_build_assembly type: string const: qbd_build_assembly createdAt: type: string description: >- The date and time when this build assembly 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. example: 2025-01-01T12:34:56.000Z updatedAt: type: string description: >- The date and time when this build assembly 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. example: 2025-02-01T12:34:56.000Z revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of this build assembly 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. example: '1721172183' inventoryAssemblyItem: type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false description: >- The inventory assembly item associated with this build assembly. An inventory assembly item is assembled or manufactured from other inventory items, and the items and/or assemblies that make up the assembly are called components. example: id: 80000001-1234567890 fullName: Inventory Assembly Item inventorySite: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The site location where inventory for the item associated with this build assembly is stored. example: id: 80000001-1234567890 fullName: Main Warehouse inventorySiteLocation: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The specific location (e.g., bin or shelf) within the inventory site where the item associated with this build assembly is stored. example: id: 80000001-1234567890 fullName: Aisle 3, Shelf B serialNumber: anyOf: - type: string - type: 'null' description: >- The serial number of the item associated with this build assembly. This is used for tracking individual units of serialized inventory items. example: SN1234567890 lotNumber: anyOf: - type: string - type: 'null' description: >- The lot number of the item associated with this build assembly. Used for tracking groups of inventory items that are purchased or manufactured together. example: LOT2023-001 expirationDate: anyOf: - type: string format: date - type: 'null' description: >- The expiration date for the serial number or lot number of the item associated with this build assembly, in ISO 8601 format (YYYY-MM-DD). This is particularly relevant for perishable or time-sensitive inventory items. Note that this field is only supported on QuickBooks Desktop 2023 or later. example: 2025-12-31T00:00:00.000Z transactionDate: type: string format: date description: The date of this build assembly, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-01' refNumber: anyOf: - type: string - type: 'null' description: >- The case-sensitive user-defined reference number for this build assembly, 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. example: BUILD-1234 memo: anyOf: - type: string - type: 'null' description: A memo or note for this build assembly. example: Assembled 25 units of Model ABC-123 Office Chair isPending: anyOf: - type: boolean - type: 'null' description: Indicates whether this build assembly has not been completed. example: false quantityToBuild: type: number description: >- The number of build assembly to be built. The transaction will fail if the number specified here exceeds the number of on-hand components. example: 7 quantityCanBuild: type: number description: >- The number of this build assembly that can be built from the parts on hand. example: 5 quantityOnHand: type: number description: The number of units of this build assembly currently in inventory. example: 150 quantityOnSalesOrder: type: number description: >- The number of units of this build assembly that have been sold (as recorded in sales orders) but not yet fulfilled or delivered to customers. example: 10 externalId: anyOf: - type: string description: >- 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: 12345678-abcd-1234-abcd-1234567890ab - type: 'null' lines: type: array items: $ref: '#/components/schemas/qbd_component_item_line' description: The component item lines in this build assembly. customFields: type: array items: $ref: '#/components/schemas/qbd_custom_field' description: >- The custom fields for the build assembly object, added as user-defined data extensions, not included in the standard QuickBooks object. required: - id - objectType - createdAt - updatedAt - revisionNumber - inventoryAssemblyItem - inventorySite - inventorySiteLocation - serialNumber - lotNumber - expirationDate - transactionDate - refNumber - memo - isPending - quantityToBuild - quantityCanBuild - quantityOnHand - quantityOnSalesOrder - externalId - lines - customFields additionalProperties: false title: The Build Assembly object x-conductor-object-type: transaction summary: >- A build assembly is a collection of items that are assembled to create a finished product. It is used to track the components and quantities of a product. qbd_component_item_line: type: object properties: item: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The item associated with this component item 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. example: id: 80000001-1234567890 fullName: Widget A inventorySite: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The site location where inventory for the item associated with this component item line is stored. example: id: 80000001-1234567890 fullName: Main Warehouse inventorySiteLocation: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The specific location (e.g., bin or shelf) within the inventory site where the item associated with this component item line is stored. example: id: 80000001-1234567890 fullName: Aisle 3, Shelf B serialNumber: anyOf: - type: string - type: 'null' description: >- The serial number of the item associated with this component item line. This is used for tracking individual units of serialized inventory items. example: SN1234567890 lotNumber: anyOf: - type: string - type: 'null' description: >- The lot number of the item associated with this component item line. Used for tracking groups of inventory items that are purchased or manufactured together. example: LOT2023-001 expirationDate: anyOf: - type: string format: date - type: 'null' description: >- The expiration date for the serial number or lot number of the item associated with this component item line, in ISO 8601 format (YYYY-MM-DD). This is particularly relevant for perishable or time-sensitive inventory items. Note that this field is only supported on QuickBooks Desktop 2023 or later. example: 2025-12-31T00:00:00.000Z description: anyOf: - type: string - type: 'null' description: A description of this component item line. example: Wood screws, 2-inch, stainless steel quantityOnHand: anyOf: - type: number - type: 'null' description: >- The number of units of this component item line currently in inventory. example: 150 quantityNeeded: anyOf: - type: number - type: 'null' description: >- The quantity of this component item line that is needed to build the assembly. For example, if the `itemId` references a bolt, the `quantityNeeded` field indicates how many of these bolts are used in the assembly. example: 3 required: - item - inventorySite - inventorySiteLocation - serialNumber - lotNumber - expirationDate - description - quantityOnHand - quantityNeeded additionalProperties: false title: The Component Item Line object x-conductor-object-type: nested qbd_check: type: object properties: id: type: string description: >- The unique identifier assigned by QuickBooks to this check. This ID is unique across all transaction types. example: 123ABC-1234567890 objectType: description: The type of object. This value is always `"qbd_check"`. example: qbd_check type: string const: qbd_check createdAt: type: string description: >- The date and time when this check 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. example: 2025-01-01T12:34:56.000Z updatedAt: type: string description: >- The date and time when this check 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. example: 2025-02-01T12:34:56.000Z revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of this check 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. example: '1721172183' bankAccount: type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false description: >- The bank account from which the funds are being drawn for this check; e.g., Checking or Savings. This check will decrease the balance of this account. example: id: 80000001-1234567890 fullName: Checking payee: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: The person or company who will receive this check. example: id: 80000001-1234567890 fullName: Corporate:Sales:Marketing refNumber: anyOf: - type: string - type: 'null' description: >- The case-sensitive user-defined reference number for this check, 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. **IMPORTANT**: For checks, this field is the check number. example: CHECK-1234 transactionDate: type: string format: date description: The date written on this check, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-01' amount: type: string description: >- The total monetary amount of this check, represented as a decimal string. This equals the sum of the amounts in the check's expense lines, item lines, and item group lines. example: '1000.00' currency: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The check's currency. For built-in currencies, the name and code are standard ISO 4217 international values. For user-defined currencies, all values are editable. example: id: 80000001-1234567890 fullName: USD exchangeRate: anyOf: - type: number - type: 'null' description: >- The market exchange rate between this check'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: 1.2345 amountInHomeCurrency: anyOf: - type: string - type: 'null' description: >- The monetary amount of this check converted to the home currency of the QuickBooks company file. Represented as a decimal string. example: '1234.56' memo: anyOf: - type: string - type: 'null' description: The memo that is printed on this check. example: Payment for office supplies - Invoice INV-1234 address: anyOf: - $ref: '#/components/schemas/qbd_address' - type: 'null' description: The address that is printed on the check. isPending: anyOf: - type: boolean - type: 'null' description: Indicates whether this check has not been completed. example: false isQueuedForPrint: anyOf: - type: boolean description: >- Indicates whether this check is included in the queue of documents for QuickBooks to print. example: true - type: 'null' salesTaxCode: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The sales-tax code for this check, determining whether it is taxable or non-taxable. If set, this overrides any sales-tax codes defined on the payee. This can be overridden on the check'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. example: id: 80000001-1234567890 fullName: Non externalId: anyOf: - type: string description: >- 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: 12345678-abcd-1234-abcd-1234567890ab - type: 'null' linkedTransactions: type: array items: $ref: '#/components/schemas/qbd_linked_transaction' description: >- The check'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 checks to receive this field because it is not returned by default. expenseLines: type: array items: $ref: '#/components/schemas/qbd_expense_line' description: >- The check's expense lines, each representing one line in this expense. itemLines: type: array items: $ref: '#/components/schemas/qbd_item_line' description: >- The check's item lines, each representing the purchase of a specific item or service. itemGroupLines: type: array items: $ref: '#/components/schemas/qbd_item_group_line_item' description: >- The check's item group lines, each representing a predefined set of items bundled together because they are commonly purchased together or grouped for faster entry. customFields: type: array items: $ref: '#/components/schemas/qbd_custom_field' description: >- The custom fields for the check object, added as user-defined data extensions, not included in the standard QuickBooks object. required: - id - objectType - createdAt - updatedAt - revisionNumber - bankAccount - payee - refNumber - transactionDate - amount - currency - exchangeRate - amountInHomeCurrency - memo - address - isPending - isQueuedForPrint - salesTaxCode - externalId - linkedTransactions - expenseLines - itemLines - itemGroupLines - customFields additionalProperties: false title: The Check object x-conductor-object-type: transaction summary: >- A check represents a payment made from a bank account, typically via paper check. It records the withdrawal of funds paid to a vendor, employee, or other payee. The transaction reduces the balance of the specified bank account and can be linked to bills or other transactions being paid. qbd_class: type: object properties: id: type: string description: >- The unique identifier assigned by QuickBooks to this class. This ID is unique across all classes but not across different QuickBooks object types. example: 80000001-1234567890 objectType: description: The type of object. This value is always `"qbd_class"`. example: qbd_class type: string const: qbd_class createdAt: type: string description: >- The date and time when this class 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. example: 2025-01-01T12:34:56.000Z updatedAt: type: string description: >- The date and time when this class 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. example: 2025-02-01T12:34:56.000Z revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of this class 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. example: '1721172183' name: type: string description: >- The case-insensitive name of this class. Not guaranteed to be unique because it does not include the names of its hierarchical parent objects like `fullName` does. For example, two classes could both have the `name` "Marketing", but they could have unique `fullName` values, such as "Department:Marketing" and "Internal:Marketing". example: Marketing fullName: type: string description: >- The case-insensitive fully-qualified unique name of this class, formed by combining the names of its hierarchical parent objects with its own `name`, separated by colons. For example, if a class is under "Department" and has the `name` "Marketing", its `fullName` would be "Department:Marketing". **NOTE**: Unlike `name`, `fullName` is guaranteed to be unique across all class objects. However, `fullName` can still be arbitrarily changed by the QuickBooks user when they modify the underlying `name` field. example: Department:Marketing isActive: type: boolean description: >- Indicates whether this class is active. Inactive objects are typically hidden from views and reports in QuickBooks. Defaults to `true`. example: true parent: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The parent class one level above this one in the hierarchy. For example, if this class has a `fullName` of "Department:Marketing", its parent has a `fullName` of "Department". If this class is at the top level, this field will be `null`. example: id: 80000001-1234567890 fullName: Department sublevel: type: number description: >- The depth level of this class in the hierarchy. A top-level class has a `sublevel` of 0; each subsequent sublevel increases this number by 1. For example, a class with a `fullName` of "Department:Marketing" would have a `sublevel` of 1. example: 1 required: - id - objectType - createdAt - updatedAt - revisionNumber - name - fullName - isActive - parent - sublevel additionalProperties: false title: The Class object x-conductor-object-type: other summary: >- A class is a category used to group QuickBooks objects into meaningful categories. For example, classes can be used to classify transactions by department, location, or type of work. qbd_company: type: object properties: isSampleCompanyFile: type: boolean description: >- Indicates whether the connected QuickBooks company file is a "sample file", which is a mock company file used for testing. example: false companyName: anyOf: - type: string - type: 'null' description: >- The name of the QuickBooks user's business associated with this company. This name is used on invoices, checks, and other forms, while `legalCompanyName` is used on tax forms and pay stubs. example: John Doe's Plumbing legalCompanyName: anyOf: - type: string - type: 'null' description: >- The legal name of this company's business, as specified in QuickBooks. This value is used on tax forms and pay stubs, while `companyName` is used on invoices, checks, and other forms. example: John Doe's Plumbing, LLC address: anyOf: - $ref: '#/components/schemas/qbd_address' - type: 'null' description: >- The company's address, used on its invoices, checks, and other forms (along with `companyName`). This is different from the company's legal address used on tax forms and pay stubs (along with `legalCompanyName`). legalAddress: anyOf: - $ref: '#/components/schemas/qbd_address' - type: 'null' description: >- The company's legal address used on its tax forms and pay stubs (along with `legalCompanyName`). This is different from the company's `address` used on invoices, checks, and other forms (along with `companyName`). addressForCustomer: anyOf: - $ref: '#/components/schemas/qbd_address' - type: 'null' description: The address where this company receives mail from its customers. phone: anyOf: - type: string - type: 'null' description: The company's primary telephone number. example: +1-555-123-4567 fax: anyOf: - type: string - type: 'null' description: The company's fax number. example: +1-555-555-1212 email: anyOf: - type: string - type: 'null' description: The company's email address. example: company@example.com website: anyOf: - type: string - type: 'null' description: The company's public website. example: https://www.johndoeplumbing.com fiscalYearStartMonth: anyOf: - type: string enum: - january - february - march - april - may - june - july - august - september - october - november - december - type: 'null' description: >- The first month of this company's fiscal year, which determines the default date range for financial reports. example: january incomeTaxYearStartMonth: anyOf: - type: string enum: - january - february - march - april - may - june - july - august - september - october - november - december - type: 'null' description: >- The first month of this company's income tax year, which determines the default date range for financial reports. example: january companyType: anyOf: - type: string - type: 'null' description: >- The company type, which the QuickBooks user selected from a list when creating the company file. example: WholesaleDistributionandSales ein: anyOf: - type: string - type: 'null' description: The company's Employer Identification Number. example: '123456789' ssn: anyOf: - type: string - type: 'null' description: >- The company's Social Security Number. The value can be with or without dashes. **NOTE**: This field cannot be changed after the company is created. example: 123-45-6789 taxForm: anyOf: - type: string enum: - form_1040 - form_1065 - form_1120 - form_1120s - form_990 - form_990pf - form_990t - other_or_none - form_t1 - form_t2 - type: 'null' description: >- The tax form that the QuickBooks user expects to file for this company's taxes. When a specific tax form is selected (any value other than `other_or_none`), QuickBooks allows associating each account with a specific tax form line. This association appears in account query responses. example: form_1040 subscribedServices: anyOf: - $ref: '#/components/schemas/qbd_subscribed_service' - type: 'null' description: >- The Intuit services that this company is or has been subscribed to, such as Intuit Payroll. accountantCopy: anyOf: - $ref: '#/components/schemas/qbd_accountant_copy' - type: 'null' description: >- Information about the accountant's copy for this company file. An accountant's copy allows an accountant to make changes while the business continues normal operations. It includes a dividing date that defines the fiscal period the accountant can work on, with restrictions on transactions and accounts within that period. While an accountant copy exists, users cannot modify transactions dated on or before the dividing date, cannot add subaccounts to existing accounts, and cannot edit, merge, or make existing accounts inactive. customFields: type: array items: $ref: '#/components/schemas/qbd_custom_field' description: >- The custom fields for the company object, added as user-defined data extensions, not included in the standard QuickBooks object. required: - isSampleCompanyFile - companyName - legalCompanyName - address - legalAddress - addressForCustomer - phone - fax - email - website - fiscalYearStartMonth - incomeTaxYearStartMonth - companyType - ein - ssn - taxForm - subscribedServices - accountantCopy - customFields additionalProperties: false title: The Company object x-conductor-object-type: other x-conductor-sidebar-group-name: Company summary: >- Detailed information about the connected QuickBooks company file, including company address, legal name, preferences, and subscribed services. qbd_subscribed_service: type: object properties: services: type: array items: $ref: '#/components/schemas/qbd_service' description: >- The list of Intuit services that this company is or has been subscribed to, for example, Intuit Payroll, QBMS. required: - services additionalProperties: false title: The Subscribed Service object x-conductor-object-type: nested qbd_service: type: object properties: name: type: string description: >- The case-insensitive unique name of this service, unique across all services. **NOTE**: Services do not have a `fullName` field because they are not hierarchical objects, which is why `name` is unique for them but not for objects that have parents. example: Intuit Payroll domain: anyOf: - type: string - type: 'null' description: The domain of this subscribed service example: payroll.qb serviceStatus: anyOf: - type: string enum: - active - expired - never - pending - suspended - terminated - trial - type: 'null' description: The status of this service's subscription. example: active required: - name - domain - serviceStatus additionalProperties: false title: The Service object x-conductor-object-type: nested qbd_accountant_copy: type: object properties: accountantCopyExists: type: boolean description: >- Indicates whether an accountant copy has been made for this company file. An accountant copy allows an accountant to work on the books while the business continues daily operations. example: true dividingDate: anyOf: - type: string - type: 'null' description: >- The fiscal period dividing date for accountant work, in ISO 8601 format (YYYY-MM-DD). While an accountant copy exists, transactions within this period cannot be modified or created. New accounts can be added, but existing accounts cannot have new subaccounts, be edited, merged, or made inactive. List items cannot be deleted or merged. example: 2024-01-01T00:00:00.000Z required: - accountantCopyExists - dividingDate additionalProperties: false title: The Accountant-Copy object x-conductor-object-type: nested qbd_credit_card_charge: type: object properties: id: type: string description: >- The unique identifier assigned by QuickBooks to this credit card charge. This ID is unique across all transaction types. example: 123ABC-1234567890 objectType: description: The type of object. This value is always `"qbd_credit_card_charge"`. example: qbd_credit_card_charge type: string const: qbd_credit_card_charge createdAt: type: string description: >- The date and time when this credit card charge 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. example: 2025-01-01T12:34:56.000Z updatedAt: type: string description: >- The date and time when this credit card charge 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. example: 2025-02-01T12:34:56.000Z revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of this credit card charge 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. example: '1721172183' account: type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false description: >- The bank or credit card account to which money is owed for this credit card charge. example: id: 80000001-1234567890 fullName: Visa payee: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The vendor or company from whom merchandise or services were purchased for this credit card charge. example: id: 80000001-1234567890 fullName: Office Depot transactionDate: type: string format: date description: >- The date of this credit card charge, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-01' amount: type: string description: >- The total monetary amount of this credit card charge, represented as a decimal string. This equals the sum of the amounts in the credit card charge's expense lines, item lines, and item group lines. example: '1000.00' currency: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The credit card charge's currency. For built-in currencies, the name and code are standard ISO 4217 international values. For user-defined currencies, all values are editable. example: id: 80000001-1234567890 fullName: USD exchangeRate: anyOf: - type: number - type: 'null' description: >- The market exchange rate between this credit card charge'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: 1.2345 amountInHomeCurrency: anyOf: - type: string - type: 'null' description: >- The monetary amount of this credit card charge converted to the home currency of the QuickBooks company file. Represented as a decimal string. example: '1234.56' refNumber: anyOf: - type: string - type: 'null' description: >- The case-sensitive user-defined reference number for this credit card charge, 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. example: CARD-1234 memo: anyOf: - type: string - type: 'null' description: A memo or note for this credit card charge. example: Office supplies for Q3 marketing campaign salesTaxCode: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The sales-tax code for this credit card charge, determining whether it is taxable or non-taxable. If set, this overrides any sales-tax codes defined on the payee. This can be overridden on the credit card charge'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. example: id: 80000001-1234567890 fullName: Non externalId: anyOf: - type: string description: >- 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: 12345678-abcd-1234-abcd-1234567890ab - type: 'null' expenseLines: type: array items: $ref: '#/components/schemas/qbd_expense_line' description: >- The credit card charge's expense lines, each representing one line in this expense. itemLines: type: array items: $ref: '#/components/schemas/qbd_item_line' description: >- The credit card charge's item lines, each representing the purchase of a specific item or service. itemGroupLines: type: array items: $ref: '#/components/schemas/qbd_item_group_line_item' description: >- The credit card charge's item group lines, each representing a predefined set of items bundled together because they are commonly purchased together or grouped for faster entry. customFields: type: array items: $ref: '#/components/schemas/qbd_custom_field' description: >- The custom fields for the credit card charge object, added as user-defined data extensions, not included in the standard QuickBooks object. required: - id - objectType - createdAt - updatedAt - revisionNumber - account - payee - transactionDate - amount - currency - exchangeRate - amountInHomeCurrency - refNumber - memo - salesTaxCode - externalId - expenseLines - itemLines - itemGroupLines - customFields additionalProperties: false title: The Credit Card Charge object x-conductor-object-type: transaction summary: >- A credit card charge is a general charge incurred when a QuickBooks user makes a purchase using a credit card. Credit card charges for purchases can be tracked as expenses (in expense accounts) or as items. qbd_credit_card_credit: type: object properties: id: type: string description: >- The unique identifier assigned by QuickBooks to this credit card credit. This ID is unique across all transaction types. example: 123ABC-1234567890 objectType: description: The type of object. This value is always `"qbd_credit_card_credit"`. example: qbd_credit_card_credit type: string const: qbd_credit_card_credit createdAt: type: string description: >- The date and time when this credit card credit 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. example: 2025-01-01T12:34:56.000Z updatedAt: type: string description: >- The date and time when this credit card credit 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. example: 2025-02-01T12:34:56.000Z revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of this credit card credit 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. example: '1721172183' account: type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false description: >- The bank or credit card account to which this credit card credit is posted. example: id: 80000001-1234567890 fullName: Visa payee: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The vendor or company from whom this credit card credit was received for purchased merchandise or services. example: id: 80000001-1234567890 fullName: Office Depot transactionDate: type: string format: date description: >- The date of this credit card credit, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-01' amount: type: string description: >- The total monetary amount of this credit card credit, represented as a decimal string. This equals the sum of the amounts in the credit card credit's expense lines, item lines, and item group lines. example: '1000.00' currency: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The credit card credit's currency. For built-in currencies, the name and code are standard ISO 4217 international values. For user-defined currencies, all values are editable. example: id: 80000001-1234567890 fullName: USD exchangeRate: anyOf: - type: number - type: 'null' description: >- The market exchange rate between this credit card credit'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: 1.2345 amountInHomeCurrency: anyOf: - type: string - type: 'null' description: >- The monetary amount of this credit card credit converted to the home currency of the QuickBooks company file. Represented as a decimal string. example: '1234.56' refNumber: anyOf: - type: string - type: 'null' description: >- The case-sensitive user-defined reference number for this credit card credit, 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. example: CREDIT-1234 memo: anyOf: - type: string - type: 'null' description: A memo or note for this credit card credit. example: Refund for returned office supplies salesTaxCode: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The sales-tax code for this credit card credit, determining whether it is taxable or non-taxable. If set, this overrides any sales-tax codes defined on the payee. This can be overridden on the credit card credit'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. example: id: 80000001-1234567890 fullName: Non externalId: anyOf: - type: string description: >- 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: 12345678-abcd-1234-abcd-1234567890ab - type: 'null' expenseLines: type: array items: $ref: '#/components/schemas/qbd_expense_line' description: >- The credit card credit's expense lines, each representing one line in this expense. itemLines: type: array items: $ref: '#/components/schemas/qbd_item_line' description: >- The credit card credit's item lines, each representing the purchase of a specific item or service. itemGroupLines: type: array items: $ref: '#/components/schemas/qbd_item_group_line_item' description: >- The credit card credit's item group lines, each representing a predefined set of items bundled together because they are commonly purchased together or grouped for faster entry. customFields: type: array items: $ref: '#/components/schemas/qbd_custom_field' description: >- The custom fields for the credit card credit object, added as user-defined data extensions, not included in the standard QuickBooks object. required: - id - objectType - createdAt - updatedAt - revisionNumber - account - payee - transactionDate - amount - currency - exchangeRate - amountInHomeCurrency - refNumber - memo - salesTaxCode - externalId - expenseLines - itemLines - itemGroupLines - customFields additionalProperties: false title: The Credit Card Credit object x-conductor-object-type: transaction summary: >- A credit card credit represents a credit or refund received from a vendor for returned merchandise, billing adjustment, or other credit. It reduces the balance owed on the credit card account. qbd_credit_card_refund: type: object properties: id: type: string description: >- The unique identifier assigned by QuickBooks to this credit card refund. This ID is unique across all transaction types. example: 123ABC-1234567890 objectType: description: The type of object. This value is always `"qbd_credit_card_refund"`. example: qbd_credit_card_refund type: string const: qbd_credit_card_refund createdAt: type: string description: >- The date and time when this credit card refund 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. example: 2025-01-01T12:34:56.000Z updatedAt: type: string description: >- The date and time when this credit card refund 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. example: 2025-02-01T12:34:56.000Z revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of this credit card refund 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. example: '1721172183' customer: type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false description: >- The customer or customer-job associated with this credit card refund. example: id: 80000001-1234567890 fullName: Acme Corporation refundFromAccount: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The account providing funds for this credit card refund. This is typically the Undeposited Funds account used to hold customer payments. example: id: 80000001-1234567890 fullName: Undeposited Funds receivablesAccount: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The Accounts-Receivable (A/R) account to which this credit card refund is assigned, used to track the amount owed. If omitted, QuickBooks Desktop uses the default A/R account configured in the company file. **IMPORTANT**: If this credit card refund is linked to other transactions, this A/R account must match the `receivablesAccount` used in all linked transactions. For example, when refunding a credit card payment, the A/R account must match the one used in each linked credit transaction being refunded. example: id: 80000001-1234567890 fullName: Accounts-Receivable transactionDate: type: string format: date description: >- The date of this credit card refund, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-01' refNumber: anyOf: - type: string - type: 'null' description: >- The case-sensitive user-defined reference number for this credit card refund, 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. example: REFUND-1234 totalAmount: type: string description: >- The total monetary amount of this credit card refund, represented as a decimal string. example: '1000.00' currency: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The credit card refund's currency. For built-in currencies, the name and code are standard ISO 4217 international values. For user-defined currencies, all values are editable. example: id: 80000001-1234567890 fullName: USD exchangeRate: anyOf: - type: number - type: 'null' description: >- The market exchange rate between this credit card refund'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: 1.2345 totalAmountInHomeCurrency: anyOf: - type: string - type: 'null' description: >- The total monetary amount of this credit card refund converted to the home currency of the QuickBooks company file. Represented as a decimal string. example: '1234.56' address: anyOf: - $ref: '#/components/schemas/qbd_address' - type: 'null' description: The address that is printed on the credit card refund. paymentMethod: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The credit card refund's payment method (e.g., cash, check, credit card). example: id: 80000001-1234567890 fullName: Credit Card memo: anyOf: - type: string - type: 'null' description: A memo or note for this credit card refund. example: Refund to customer for duplicate credit card charge creditCardTransaction: anyOf: - $ref: '#/components/schemas/qbd_credit_card_transaction' - type: 'null' description: >- The credit card transaction data for this credit card refund's payment when using QuickBooks Merchant Services (QBMS). externalId: anyOf: - type: string description: >- 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: 12345678-abcd-1234-abcd-1234567890ab - type: 'null' refundAppliedToTransactions: type: array items: $ref: '#/components/schemas/qbd_credit_transaction' description: The credit transactions refunded by this credit card refund. customFields: type: array items: $ref: '#/components/schemas/qbd_custom_field' description: >- The custom fields for the credit card refund object, added as user-defined data extensions, not included in the standard QuickBooks object. required: - id - objectType - createdAt - updatedAt - revisionNumber - customer - refundFromAccount - receivablesAccount - transactionDate - refNumber - totalAmount - currency - exchangeRate - totalAmountInHomeCurrency - address - paymentMethod - memo - creditCardTransaction - externalId - refundAppliedToTransactions - customFields additionalProperties: false title: The Credit Card Refund object x-conductor-object-type: transaction summary: >- A credit card refund transaction issues money back to a customer's credit card, typically reversing a previously recorded credit card payment. It reduces the customer's outstanding accounts receivable balance and withdraws funds from the specified refund source account (Undeposited Funds by default). Use this when refunding credit card payments rather than creating a credit memo or issuing a cash refund. qbd_credit_card_transaction: type: object properties: request: anyOf: - $ref: '#/components/schemas/qbd_credit_card_transaction_request' - type: 'null' description: >- The transaction request data originally supplied for this credit card transaction when using QuickBooks Merchant Services (QBMS). response: anyOf: - $ref: '#/components/schemas/qbd_credit_card_transaction_response' - type: 'null' description: >- The transaction response data for this credit card transaction when using QuickBooks Merchant Services (QBMS). required: - request - response additionalProperties: false title: The Credit Card Transaction object x-conductor-object-type: nested qbd_credit_card_transaction_request: type: object properties: number: type: string description: >- The credit card number. Must be masked with lower case "x" and no dashes. example: xxxxxxxxxxxx1234 expirationMonth: type: number description: The month when the credit card expires. example: 12 expirationYear: type: number description: The year when the credit card expires. example: 2024 name: anyOf: - type: string - type: 'null' description: The cardholder's name on the card. example: John Doe address: anyOf: - type: string - type: 'null' description: The card's billing address. example: 1234 Main St, Anytown, USA, 12345 postalCode: anyOf: - type: string - type: 'null' description: The card's billing address ZIP or postal code. example: '12345' commercialCardCode: anyOf: - type: string - type: 'null' description: >- The commercial card code identifies the type of business credit card being used (purchase, corporate, or business) for Visa and Mastercard transactions only. When provided, this code may qualify the transaction for lower processing fees compared to the standard rates that apply when no code is specified. example: corporate transactionMode: anyOf: - type: string enum: - card_not_present - card_present - type: 'null' description: >- Indicates whether this credit card transaction came from a card swipe (`card_present`) or not (`card_not_present`). example: card_not_present transactionType: anyOf: - type: string enum: - authorization - capture - charge - refund - voice_authorization - type: 'null' description: >- The QBMS transaction type from which the current transaction data originated. example: charge required: - number - expirationMonth - expirationYear - name - address - postalCode - commercialCardCode - transactionMode - transactionType additionalProperties: false title: The Credit Card Transaction Request object x-conductor-object-type: nested qbd_credit_card_transaction_response: type: object properties: statusCode: type: number description: >- The status code returned in the original QBMS transaction response for this credit card transaction. example: 0 statusMessage: type: string description: >- The status message returned in the original QBMS transaction response for this credit card transaction. example: Success creditCardTransactionId: type: string description: >- The ID returned from the credit card processor for this credit card transaction. example: '1234567890' merchantAccountNumber: type: string description: >- The QBMS account number of the merchant who is running this transaction using the customer's credit card. example: '1234567890' authorizationCode: anyOf: - type: string - type: 'null' description: >- The authorization code returned from the credit card processor to indicate that this charge will be paid by the card issuer. example: '1234567890' avsStreetStatus: anyOf: - type: string enum: - fail - not_available - pass - type: 'null' description: >- Indicates whether the street address supplied in the transaction request matches the customer's address on file at the card issuer. example: pass avsZipStatus: anyOf: - type: string enum: - fail - not_available - pass - type: 'null' description: >- Indicates whether the customer postal ZIP code supplied in the transaction request matches the customer's postal code recognized at the card issuer. example: pass cardSecurityCodeMatch: anyOf: - type: string enum: - fail - not_available - pass - type: 'null' description: >- Indicates whether the card security code supplied in the transaction request matches the card security code recognized for that credit card number at the card issuer. example: pass reconBatchId: anyOf: - type: string - type: 'null' description: >- An internal ID returned by QuickBooks Merchant Services (QBMS) from the transaction request, needed for the QuickBooks reconciliation feature. example: '1234567890' paymentGroupingCode: anyOf: - type: number - type: 'null' description: >- An internal code returned by QuickBooks Merchant Services (QBMS) from the transaction request, needed for the QuickBooks reconciliation feature. example: 2 paymentStatus: type: string enum: - completed - unknown description: >- Indicates whether this credit card transaction is known to have been successfully processed by the card issuer. example: completed transactionAuthorizedAt: type: string description: >- The date and time when the credit card processor authorized this credit card transaction. example: 2024-01-01T12:34:56.000Z transactionAuthorizationStamp: anyOf: - type: number - type: 'null' description: >- An internal value for this credit card transaction, needed for the QuickBooks reconciliation feature. example: 2 clientTransactionId: anyOf: - type: string - type: 'null' description: >- A value returned from QBMS transactions for future use by the QuickBooks Reconciliation feature. example: '1234567890' required: - statusCode - statusMessage - creditCardTransactionId - merchantAccountNumber - authorizationCode - avsStreetStatus - avsZipStatus - cardSecurityCodeMatch - reconBatchId - paymentGroupingCode - paymentStatus - transactionAuthorizedAt - transactionAuthorizationStamp - clientTransactionId additionalProperties: false title: The Credit Card Transaction Response object x-conductor-object-type: nested qbd_credit_transaction: type: object properties: transactionId: type: string maxLength: 36 description: >- The ID of the credit transaction being refunded by this credit card refund. example: 123ABC-1234567890 transactionType: type: string enum: - 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 description: The type of transaction for this credit transaction. example: invoice transactionDate: anyOf: - type: string format: date - type: 'null' description: >- The date of this credit transaction, in ISO 8601 format (YYYY-MM-DD). example: 2024-10-01T00:00:00.000Z refNumber: anyOf: - type: string - type: 'null' description: >- The case-sensitive user-defined reference number for this credit 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. example: CREDIT-1234 creditRemaining: anyOf: - type: string - type: 'null' description: >- The remaining balance of this credit transaction that has not yet been applied to other transactions or refunded to the customer. Represented as a decimal string. example: '25.11' refundAmount: type: string description: >- The monetary amount to refund from the linked credit transaction within this credit transaction, represented as a decimal string. example: '15.00' creditRemainingInHomeCurrency: anyOf: - type: string - type: 'null' description: >- The remaining balance of this credit transaction converted to the home currency of the QuickBooks company file. Represented as a decimal string. example: '25.11' refundAmountInHomeCurrency: anyOf: - type: string - type: 'null' description: >- The monetary amount to refund from the linked credit transaction in this credit transaction, converted to the home currency of the QuickBooks company file. Represented as a decimal string. example: '15.00' required: - transactionId - transactionType - transactionDate - refNumber - creditRemaining - refundAmount - creditRemainingInHomeCurrency - refundAmountInHomeCurrency additionalProperties: false title: The Credit Transaction object x-conductor-object-type: nested qbd_credit_memo: type: object properties: id: type: string description: >- The unique identifier assigned by QuickBooks to this credit memo. This ID is unique across all transaction types. example: 123ABC-1234567890 objectType: description: The type of object. This value is always `"qbd_credit_memo"`. example: qbd_credit_memo type: string const: qbd_credit_memo createdAt: type: string description: >- The date and time when this credit memo 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. example: 2025-01-01T12:34:56.000Z updatedAt: type: string description: >- The date and time when this credit memo 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. example: 2025-02-01T12:34:56.000Z revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of this credit memo 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. example: '1721172183' customer: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: The customer or customer-job associated with this credit memo. example: id: 80000001-1234567890 fullName: Acme Corporation class: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The credit memo'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 credit memo's line items unless overridden at the line item level. example: id: 80000001-1234567890 fullName: Refunds receivablesAccount: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The Accounts-Receivable (A/R) account to which this credit memo is assigned, used to track the amount owed. If omitted, QuickBooks Desktop uses the default A/R account configured in the company file. **IMPORTANT**: If this credit memo is linked to other transactions, this A/R account must match the `receivablesAccount` used in all linked transactions. example: id: 80000001-1234567890 fullName: Accounts-Receivable documentTemplate: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The predefined template in QuickBooks that determines the layout and formatting for this credit memo when printed or displayed. example: id: 80000001-1234567890 fullName: Credit Memo Template transactionDate: type: string format: date description: The date of this credit memo, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-01' refNumber: anyOf: - type: string - type: 'null' description: >- The case-sensitive user-defined reference number for this credit memo, 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. example: CM-1234 billingAddress: anyOf: - $ref: '#/components/schemas/qbd_address' - type: 'null' description: The credit memo's billing address. shippingAddress: anyOf: - $ref: '#/components/schemas/qbd_address' - type: 'null' description: The credit memo's shipping address. isPending: anyOf: - type: boolean - type: 'null' description: Indicates whether this credit memo has not been completed. example: false purchaseOrderNumber: anyOf: - type: string - type: 'null' description: >- The customer's Purchase Order (PO) number associated with this credit memo. This field is often used to cross-reference the credit memo with the customer's purchasing system. example: PO-1234 terms: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The credit memo's payment terms, defining when payment is due and any applicable discounts. example: id: 80000001-1234567890 fullName: Net 30 dueDate: anyOf: - type: string format: date - type: 'null' description: >- The date by which this credit memo must be paid, in ISO 8601 format (YYYY-MM-DD). example: 2024-10-31T00:00:00.000Z salesRepresentative: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The credit memo's sales representative. Sales representatives can be employees, vendors, or other names in QuickBooks. example: id: 80000001-1234567890 fullName: Jane Doe shipmentOrigin: anyOf: - type: string - type: 'null' description: >- The origin location from where the product associated with this credit memo 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. example: San Francisco, CA shippingDate: anyOf: - type: string format: date - type: 'null' description: >- The date when the products or services for this credit memo were shipped or are expected to be shipped, in ISO 8601 format (YYYY-MM-DD). example: 2024-10-01T00:00:00.000Z shippingMethod: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The shipping method used for this credit memo, such as standard mail or overnight delivery. example: id: 80000001-1234567890 fullName: FedEx Ground subtotal: type: string description: >- The subtotal of this credit memo, which is the sum of all credit memo lines before taxes and payments are applied, represented as a decimal string. example: '1000.00' salesTaxItem: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The sales-tax item used to calculate the actual tax amount for this credit memo's transactions by applying a specific tax rate collected for a single tax agency. Unlike `salesTaxCode`, which only indicates general taxability, this field drives the actual tax calculation and reporting. example: id: 80000001-1234567890 fullName: State Sales Tax salesTaxPercentage: anyOf: - type: string - type: 'null' description: >- The sales tax percentage applied to this credit memo, represented as a decimal string. example: '0.07' salesTaxTotal: anyOf: - type: string - type: 'null' description: >- The total amount of sales tax charged for this credit memo, represented as a decimal string. example: '10.00' totalAmount: type: string description: >- The total monetary amount of this credit memo, equivalent to the sum of the amounts in `lines` and `lineGroups`, represented as a decimal string. example: '1000.00' creditRemaining: anyOf: - type: string - type: 'null' description: >- The remaining balance of this credit memo that has not yet been applied to other transactions or refunded to the customer. Represented as a decimal string. example: '25.11' currency: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The credit memo's currency. For built-in currencies, the name and code are standard ISO 4217 international values. For user-defined currencies, all values are editable. example: id: 80000001-1234567890 fullName: USD exchangeRate: anyOf: - type: number - type: 'null' description: >- The market exchange rate between this credit memo'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: 1.2345 creditRemainingInHomeCurrency: anyOf: - type: string - type: 'null' description: >- The remaining balance of this credit memo converted to the home currency of the QuickBooks company file. Represented as a decimal string. example: '25.11' memo: anyOf: - type: string - type: 'null' description: >- A memo or note for this credit memo that appears in the account register and customer register, but not on the credit memo itself. example: Customer refund for damaged shipment customerMessage: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: The message to display to the customer on the credit memo. example: id: 80000001-1234567890 fullName: Thank you for your business! isQueuedForPrint: anyOf: - type: boolean description: >- Indicates whether this credit memo is included in the queue of documents for QuickBooks to print. example: true - type: 'null' isQueuedForEmail: anyOf: - type: boolean - type: 'null' description: >- Indicates whether this credit memo is included in the queue of documents for QuickBooks to email to the customer. example: true salesTaxCode: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The sales-tax code for this credit memo, determining whether it is taxable or non-taxable. This can be overridden at the transaction-line level. 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. example: id: 80000001-1234567890 fullName: Non otherCustomField: anyOf: - type: string - type: 'null' description: >- A built-in custom field for additional information specific to this credit memo. Unlike the user-defined fields in the `customFields` array, this is a standard QuickBooks field that exists for all credit memos for convenience. Developers often use this field for tracking information that doesn't fit into other standard QuickBooks fields. Unlike `otherCustomField1` and `otherCustomField2`, which are line item fields, this exists at the transaction level. Hidden by default in the QuickBooks UI. example: Special handling required externalId: anyOf: - type: string description: >- 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: 12345678-abcd-1234-abcd-1234567890ab - type: 'null' linkedTransactions: type: array items: $ref: '#/components/schemas/qbd_linked_transaction' description: >- The credit memo'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 credit memos to receive this field because it is not returned by default. lines: type: array items: $ref: '#/components/schemas/qbd_credit_memo_line' description: >- The credit memo's line items, each representing a single product or service sold. lineGroups: type: array items: $ref: '#/components/schemas/qbd_credit_memo_line_group' description: >- The credit memo's line item groups, each representing a predefined set of related items. customFields: type: array items: $ref: '#/components/schemas/qbd_custom_field' description: >- The custom fields for the credit memo object, added as user-defined data extensions, not included in the standard QuickBooks object. required: - id - objectType - createdAt - updatedAt - revisionNumber - customer - class - receivablesAccount - documentTemplate - transactionDate - refNumber - billingAddress - shippingAddress - isPending - purchaseOrderNumber - terms - dueDate - salesRepresentative - shipmentOrigin - shippingDate - shippingMethod - subtotal - salesTaxItem - salesTaxPercentage - salesTaxTotal - totalAmount - creditRemaining - currency - exchangeRate - creditRemainingInHomeCurrency - memo - customerMessage - isQueuedForPrint - isQueuedForEmail - salesTaxCode - otherCustomField - externalId - linkedTransactions - lines - lineGroups - customFields additionalProperties: false title: The Credit Memo object x-conductor-object-type: transaction summary: >- A credit memo records an amount owed to a customer (such as for returns, over-payments, or pre-payments), reducing their outstanding balance. The credit remains available (tracked in the `creditRemaining` field) until it's applied to other transactions (such as invoices or sales receipts) through a receive-payment's `applyToTransactions.applyCredits` field. qbd_credit_memo_line: type: object properties: id: type: string description: >- The unique identifier assigned by QuickBooks to this credit memo line. This ID is unique across all transaction line types. example: 456DEF-1234567890 objectType: description: The type of object. This value is always `"qbd_credit_memo_line"`. example: qbd_credit_memo_line type: string const: qbd_credit_memo_line item: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The item associated with this credit memo 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. example: id: 80000001-1234567890 fullName: Widget A description: anyOf: - type: string - type: 'null' description: A description of this credit memo line. example: Return of defective product - Widget Model X123 quantity: anyOf: - type: number - type: 'null' description: >- The quantity of the item associated with this credit memo line. This field cannot be cleared. **NOTE**: Do not use this field if the associated item is a discount item. example: 5 unitOfMeasure: anyOf: - type: string - type: 'null' description: >- The unit-of-measure used for the `quantity` in this credit memo line. Must be a valid unit within the item's available units of measure. example: Each overrideUnitOfMeasureSet: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- Specifies an alternative unit-of-measure set when updating this credit memo 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. example: id: 80000001-1234567890 fullName: Volume Units rate: anyOf: - type: string - type: 'null' description: >- The price per unit for this credit memo 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. example: '10.00' ratePercent: anyOf: - type: string - type: 'null' description: >- The price of this credit memo line expressed as a percentage. Typically used for discount or markup items. example: '10.5' class: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The credit memo 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 credit memo lines unless overridden here, at the transaction line level. example: id: 80000001-1234567890 fullName: Refunds amount: anyOf: - type: string - type: 'null' description: >- The monetary amount of this credit memo 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. example: '1000.00' inventorySite: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The site location where inventory for the item associated with this credit memo line is stored. example: id: 80000001-1234567890 fullName: Main Warehouse inventorySiteLocation: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The specific location (e.g., bin or shelf) within the inventory site where the item associated with this credit memo line is stored. example: id: 80000001-1234567890 fullName: Aisle 3, Shelf B serialNumber: anyOf: - type: string - type: 'null' description: >- The serial number of the item associated with this credit memo line. This is used for tracking individual units of serialized inventory items. example: SN1234567890 lotNumber: anyOf: - type: string - type: 'null' description: >- The lot number of the item associated with this credit memo line. Used for tracking groups of inventory items that are purchased or manufactured together. example: LOT2023-001 expirationDate: anyOf: - type: string format: date - type: 'null' description: >- The expiration date for the serial number or lot number of the item associated with this credit memo line, in ISO 8601 format (YYYY-MM-DD). This is particularly relevant for perishable or time-sensitive inventory items. Note that this field is only supported on QuickBooks Desktop 2023 or later. example: 2025-12-31T00:00:00.000Z serviceDate: anyOf: - type: string format: date - type: 'null' description: >- The date on which the service for this credit memo line was or will be performed, in ISO 8601 format (YYYY-MM-DD). This is particularly relevant for service items. example: 2024-03-15T00:00:00.000Z salesTaxCode: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The sales-tax code for this credit memo 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. example: id: 80000001-1234567890 fullName: Non otherCustomField1: anyOf: - type: string - type: 'null' description: >- A built-in custom field for additional information specific to this credit memo line. Unlike the user-defined fields in the `customFields` array, this is a standard QuickBooks field that exists for all credit memo 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. example: Special handling required otherCustomField2: anyOf: - type: string - type: 'null' description: >- A second built-in custom field for additional information specific to this credit memo line. Unlike the user-defined fields in the `customFields` array, this is a standard QuickBooks field that exists for all credit memo 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. example: Always ship with a spare customFields: type: array items: $ref: '#/components/schemas/qbd_custom_field' description: >- The custom fields for the credit memo line object, added as user-defined data extensions, not included in the standard QuickBooks object. required: - id - objectType - item - description - quantity - unitOfMeasure - overrideUnitOfMeasureSet - rate - ratePercent - class - amount - inventorySite - inventorySiteLocation - serialNumber - lotNumber - expirationDate - serviceDate - salesTaxCode - otherCustomField1 - otherCustomField2 - customFields additionalProperties: false title: The Credit Memo Line object x-conductor-object-type: nested qbd_credit_memo_line_group: type: object properties: id: type: string description: >- The unique identifier assigned by QuickBooks to this credit memo line group. This ID is unique across all transaction line types. example: 456DEF-1234567890 objectType: description: >- The type of object. This value is always `"qbd_credit_memo_line_group"`. example: qbd_credit_memo_line_group type: string const: qbd_credit_memo_line_group itemGroup: type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false description: >- The credit memo line group's item group, representing a predefined set of items bundled because they are commonly purchased together or grouped for faster entry. example: id: 80000001-1234567890 fullName: Office Supplies Bundle description: anyOf: - type: string - type: 'null' description: A description of this credit memo line group. example: Service Bundle 1 quantity: anyOf: - type: number - type: 'null' description: >- The quantity of the item group associated with this credit memo line group. This field cannot be cleared. **NOTE**: Do not use this field if the associated item group is a discount item group. example: 5 unitOfMeasure: anyOf: - type: string - type: 'null' description: >- The unit-of-measure used for the `quantity` in this credit memo line group. Must be a valid unit within the item's available units of measure. example: Each overrideUnitOfMeasureSet: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- Specifies an alternative unit-of-measure set when updating this credit memo 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. example: id: 80000001-1234567890 fullName: Volume Units shouldPrintItemsInGroup: type: boolean description: >- Indicates whether the individual items in this credit memo line group and their separate amounts appear on printed forms. example: true totalAmount: type: string description: >- The total monetary amount of this credit memo line group, equivalent to the sum of the amounts in `lines`, represented as a decimal string. example: '1000.00' serviceDate: anyOf: - type: string format: date - type: 'null' description: >- The date on which the service for this credit memo line group was or will be performed, in ISO 8601 format (YYYY-MM-DD). This is particularly relevant for service items. example: 2024-03-15T00:00:00.000Z lines: type: array items: $ref: '#/components/schemas/qbd_credit_memo_line' description: >- The credit memo line group's line items, each representing a single product or service sold. customFields: type: array items: $ref: '#/components/schemas/qbd_custom_field' description: >- The custom fields for the credit memo line group object, added as user-defined data extensions, not included in the standard QuickBooks object. required: - id - objectType - itemGroup - description - quantity - unitOfMeasure - overrideUnitOfMeasureSet - shouldPrintItemsInGroup - totalAmount - serviceDate - lines - customFields additionalProperties: false title: The Credit Memo Line Group object x-conductor-object-type: nested qbd_currency: type: object properties: id: type: string description: >- The unique identifier assigned by QuickBooks to this currency. This ID is unique across all currencies but not across different QuickBooks object types. example: 80000001-1234567890 objectType: description: The type of object. This value is always `"qbd_currency"`. example: qbd_currency type: string const: qbd_currency createdAt: type: string description: >- The date and time when this currency 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. example: 2025-01-01T12:34:56.000Z updatedAt: type: string description: >- The date and time when this currency 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. example: 2025-02-01T12:34:56.000Z revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of this currency 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. example: '1721172183' name: type: string description: >- The case-insensitive unique name of this currency, unique across all currencies. For built-in currencies, the name is the internationally accepted currency name and is not editable. **NOTE**: Currencies do not have a `fullName` field because they are not hierarchical objects, which is why `name` is unique for them but not for objects that have parents. example: United States Dollar isActive: type: boolean description: >- Indicates whether this currency is active. Inactive objects are typically hidden from views and reports in QuickBooks. Defaults to `true`. example: true currencyCode: type: string description: >- The internationally accepted currency code used by this currency, typically based on the ISO 4217 standard (for example, USD for US Dollars). Built-in QuickBooks currencies follow ISO 4217. For user-defined currencies, following ISO 4217 is recommended but not required. In many cases, the three-letter code is formed from the country's two-letter internet code plus a currency letter (e.g., BZ + D → BZD for Belize Dollar). example: USD currencyFormat: anyOf: - $ref: '#/components/schemas/qbd_currency_format' - type: 'null' description: >- Controls how this currency displays thousands separators, grouping, and decimal places. isUserDefinedCurrency: anyOf: - type: boolean - type: 'null' description: >- Indicates whether this currency was created by a QuickBooks user (`true`) or is a built-in currency (`false`). example: false exchangeRate: anyOf: - type: number - type: 'null' description: >- The market exchange rate between this currency'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: 1.2345 asOfDate: anyOf: - type: string format: date - type: 'null' description: >- The date when the exchange rate for this currency was last updated, in ISO 8601 format (YYYY-MM-DD). example: 2024-08-01T00:00:00.000Z required: - id - objectType - createdAt - updatedAt - revisionNumber - name - isActive - currencyCode - currencyFormat - isUserDefinedCurrency - exchangeRate - asOfDate additionalProperties: false title: The Currency object x-conductor-object-type: other summary: >- A currency represents either a built-in ISO 4217 currency or a user-defined currency in a multi-currency QuickBooks company file. Built-in currencies have standardized names and codes and support automatic exchange-rate downloads in the QuickBooks UI. User-defined currencies behave the same in QuickBooks but their exchange rates are never auto-updated; you must maintain rates yourself. qbd_currency_format: type: object properties: thousandSeparator: anyOf: - type: string enum: - apostrophe - comma - period - space - type: 'null' description: >- Controls the thousands separator when displaying currency values (for example, "1,000,000"). Defaults to comma. example: comma thousandSeparatorGrouping: anyOf: - type: string enum: - x_xx_xx_xxx - xx_xxx_xxx - type: 'null' description: >- Controls how digits are grouped for thousands when displaying currency values (for example, "10,000,000"). example: xx_xxx_xxx decimalPlaces: anyOf: - type: string enum: - '0' - '2' - type: 'null' description: >- Controls the number of decimal places displayed for currency values. Use `0` to hide decimals or `2` to display cents. example: '2' decimalSeparator: anyOf: - type: string enum: - comma - period - type: 'null' description: >- Controls the decimal separator when displaying currency values (for example, "1.00" vs "1,00"). Defaults to period. example: period required: - thousandSeparator - thousandSeparatorGrouping - decimalPlaces - decimalSeparator additionalProperties: false title: The Currency Format object x-conductor-object-type: nested qbd_customer_type: type: object properties: id: type: string description: >- The unique identifier assigned by QuickBooks to this customer type. This ID is unique across all customer types but not across different QuickBooks object types. example: 80000001-1234567890 objectType: description: The type of object. This value is always `"qbd_customer_type"`. example: qbd_customer_type type: string const: qbd_customer_type createdAt: type: string description: >- The date and time when this customer type 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. example: 2025-01-01T12:34:56.000Z updatedAt: type: string description: >- The date and time when this customer type 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. example: 2025-02-01T12:34:56.000Z revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of this customer type 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. example: '1721172183' name: type: string description: >- The case-insensitive name of this customer type. Not guaranteed to be unique because it does not include the names of its hierarchical parent objects like `fullName` does. For example, two customer types could both have the `name` "Healthcare", but they could have unique `fullName` values, such as "Industry:Healthcare" and "Region:Healthcare". example: Healthcare fullName: type: string description: >- The case-insensitive fully-qualified unique name of this customer type, formed by combining the names of its hierarchical parent objects with its own `name`, separated by colons. For example, if a customer type is under "Industry" and has the `name` "Healthcare", its `fullName` would be "Industry:Healthcare". **NOTE**: Unlike `name`, `fullName` is guaranteed to be unique across all customer type objects. However, `fullName` can still be arbitrarily changed by the QuickBooks user when they modify the underlying `name` field. example: Industry:Healthcare isActive: type: boolean description: >- Indicates whether this customer type is active. Inactive objects are typically hidden from views and reports in QuickBooks. Defaults to `true`. example: true parent: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The parent customer type one level above this one in the hierarchy. For example, if this customer type has a `fullName` of "Industry:Healthcare", its parent has a `fullName` of "Industry". If this customer type is at the top level, this field will be `null`. example: id: 80000001-1234567890 fullName: Industry sublevel: type: number description: >- The depth level of this customer type in the hierarchy. A top-level customer type has a `sublevel` of 0; each subsequent sublevel increases this number by 1. For example, a customer type with a `fullName` of "Industry:Healthcare" would have a `sublevel` of 1. example: 1 required: - id - objectType - createdAt - updatedAt - revisionNumber - name - fullName - isActive - parent - sublevel additionalProperties: false title: The Customer Type object x-conductor-object-type: other summary: >- A customer type categorizes customers into meaningful segments, such as industry or region, so QuickBooks Desktop users can organize reporting and workflows around those groupings. qbd_customer: type: object properties: id: type: string description: >- The unique identifier assigned by QuickBooks to this customer. This ID is unique across all customers but not across different QuickBooks object types. example: 80000001-1234567890 objectType: description: The type of object. This value is always `"qbd_customer"`. example: qbd_customer type: string const: qbd_customer createdAt: type: string description: >- The date and time when this customer 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. example: 2025-01-01T12:34:56.000Z updatedAt: type: string description: >- The date and time when this customer 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. example: 2025-02-01T12:34:56.000Z revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of this customer 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. example: '1721172183' name: type: string description: >- The case-insensitive name of this customer. Not guaranteed to be unique because it does not include the names of its hierarchical parent objects like `fullName` does. For example, two customers could both have the `name` "Website Redesign Project", but they could have unique `fullName` values, such as "ABC Corporation:Website Redesign Project" and "Baker:Website Redesign Project". example: Website Redesign Project fullName: type: string description: >- The case-insensitive fully-qualified unique name of this customer, formed by combining the names of its hierarchical 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". **NOTE**: Unlike `name`, `fullName` is guaranteed to be unique across all customer objects. However, `fullName` can still be arbitrarily changed by the QuickBooks user when they modify the underlying `name` field. **IMPORTANT**: If this object is a job (i.e., a sub-customer), this value would likely be the job's `name` prefixed by the customer's `name`. example: ABC Corporation:Website Redesign Project isActive: type: boolean description: >- Indicates whether this customer is active. Inactive objects are typically hidden from views and reports in QuickBooks. Defaults to `true`. example: true class: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The customer'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. example: id: 80000001-1234567890 fullName: Consulting parent: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The parent customer one level above this one in the hierarchy. For example, if this customer has a `fullName` of "ABC Corporation:Website Redesign Project", its parent has a `fullName` of "ABC Corporation". If this customer is at the top level, this field will be `null`. example: id: 80000001-1234567890 fullName: ABC Corporation sublevel: type: number description: >- The depth level of this customer in the hierarchy. A top-level customer has a `sublevel` of 0; each subsequent sublevel increases this number by 1. For example, a customer with a `fullName` of "ABC Corporation:Website Redesign Project" would have a `sublevel` of 1. When `sublevel` is 0, this object is a customer; when `sublevel` is greater than 0, this object is typically a job (i.e., a sub-customer). example: 1 companyName: anyOf: - type: string - type: 'null' description: >- The name of the company associated with this customer. This name is used on invoices, checks, and other forms. example: Acme Corporation salutation: anyOf: - type: string - type: 'null' description: >- The formal salutation title that precedes the name of the contact person for this customer, such as "Mr.", "Ms.", or "Dr.". example: Dr. firstName: anyOf: - type: string - type: 'null' description: The first name of the contact person for this customer. example: John middleName: anyOf: - type: string - type: 'null' description: The middle name of the contact person for this customer. example: A. lastName: anyOf: - type: string - type: 'null' description: The last name of the contact person for this customer. example: Doe jobTitle: anyOf: - type: string - type: 'null' description: The job title of the contact person for this customer. example: Purchasing Manager billingAddress: anyOf: - $ref: '#/components/schemas/qbd_address' - type: 'null' description: The customer's billing address. shippingAddress: anyOf: - $ref: '#/components/schemas/qbd_address' - type: 'null' description: The customer's shipping address. alternateShippingAddresses: anyOf: - type: array items: $ref: '#/components/schemas/qbd_shipping_address' - type: 'null' description: >- A list of additional shipping addresses for this customer. Useful when the customer has multiple shipping locations. If `excludeAlternateShippingAddresses=true` is set on a customer list request, this field is `null` because the addresses were not fetched. phone: anyOf: - type: string - type: 'null' description: The customer's primary telephone number. example: +1-555-123-4567 alternatePhone: anyOf: - type: string - type: 'null' description: The customer's alternate telephone number. example: +1-555-987-6543 fax: anyOf: - type: string - type: 'null' description: The customer's fax number. example: +1-555-555-1212 email: anyOf: - type: string - type: 'null' description: The customer's email address. example: customer@example.com ccEmail: anyOf: - type: string - type: 'null' description: >- An email address to carbon copy (CC) on communications with this customer. example: manager@example.com contact: anyOf: - type: string - type: 'null' description: The name of the primary contact person for this customer. example: Jane Smith alternateContact: anyOf: - type: string - type: 'null' description: The name of a alternate contact person for this customer. example: Bob Johnson customContactFields: type: array items: $ref: '#/components/schemas/qbd_custom_contact_field' description: >- Additional custom contact fields for this customer, such as phone numbers or email addresses. additionalContacts: type: array items: $ref: '#/components/schemas/qbd_contact' description: Additional alternate contacts for this customer. customerType: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The customer's type, used for categorizing customers into meaningful segments, such as industry or region. example: id: 80000001-1234567890 fullName: Retail Customer terms: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The customer's payment terms, defining when payment is due and any applicable discounts. example: id: 80000001-1234567890 fullName: Net 30 salesRepresentative: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The customer's sales representative. Sales representatives can be employees, vendors, or other names in QuickBooks. example: id: 80000001-1234567890 fullName: Jane Doe balance: anyOf: - type: string - type: 'null' description: >- The current balance owed by this customer, excluding balances from any jobs (i.e., sub-customers), represented as a decimal string. Compare with `totalBalance`. A positive number indicates money owed by the customer. example: '1000.00' totalBalance: anyOf: - type: string - type: 'null' description: >- The combined balance of this customer and all of this customer's jobs (i.e., sub-customers), represented as a decimal string. If there are no sub-customers, `totalBalance` and `balance` are equal. A positive number indicates money owed by the customer. example: '5000.00' salesTaxCode: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The default sales-tax code for transactions with this customer, determining whether the transactions are taxable or non-taxable. This can be overridden at the transaction or transaction-line level. 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. example: id: 80000001-1234567890 fullName: Non salesTaxItem: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The sales-tax item used to calculate the actual tax amount for this customer's transactions by applying a specific tax rate collected for a single tax agency. Unlike `salesTaxCode`, which only indicates general taxability, this field drives the actual tax calculation and reporting. example: id: 80000001-1234567890 fullName: State Sales Tax salesTaxCountry: anyOf: - type: string - type: 'null' description: The country for which sales tax is collected for this customer. example: us resaleNumber: anyOf: - type: string - type: 'null' description: >- The customer's resale number, used if the customer is purchasing items for resale. This number does not affect sales tax calculations or reports in QuickBooks. example: '123456789' accountNumber: anyOf: - type: string - type: 'null' description: >- The customer's account number, which appears in the QuickBooks chart of accounts, reports, and graphs. Note that if the "Use Account Numbers" preference is turned off in QuickBooks, the account number may not be visible in the user interface, but it can still be set and retrieved through the API. example: '1010' creditLimit: anyOf: - type: string - type: 'null' description: >- The customer's credit limit, represented as a decimal string. This is the maximum amount of money this customer can spend before being billed. If `null`, there is no credit limit. example: '5000.00' preferredPaymentMethod: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The customer's preferred payment method (e.g., cash, check, credit card). example: id: 80000001-1234567890 fullName: Credit Card creditCard: anyOf: - $ref: '#/components/schemas/qbd_credit_card' - type: 'null' description: >- The customer's credit card information, including card type, number, and expiration date, used for processing credit card payments. jobStatus: anyOf: - type: string enum: - awarded - closed - in_progress - none - not_awarded - pending - type: 'null' description: >- The status of this customer's job, if this object is a job (i.e., sub-customer). example: in_progress jobStartDate: anyOf: - type: string format: date - type: 'null' description: >- The date when work on this customer's job began, if applicable, in ISO 8601 format (YYYY-MM-DD). example: 2024-01-15T00:00:00.000Z jobProjectedEndDate: anyOf: - type: string format: date - type: 'null' description: >- The projected completion date for this customer's job, if applicable, in ISO 8601 format (YYYY-MM-DD). example: 2024-12-31T00:00:00.000Z jobEndDate: anyOf: - type: string format: date - type: 'null' description: >- The actual completion date of this customer's job, if applicable, in ISO 8601 format (YYYY-MM-DD). example: 2024-11-30T00:00:00.000Z jobDescription: anyOf: - type: string - type: 'null' description: >- A brief description of this customer's job, if this object is a job (i.e., sub-customer). example: Kitchen renovation project for residential client. jobType: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The type or category of this customer's job, if this object is a job (i.e., sub-customer). Useful for classifying into meaningful segments (e.g., repair, installation, consulting). example: id: 80000001-1234567890 fullName: Installation note: anyOf: - type: string - type: 'null' description: A note or comment about this customer. example: Our favorite customer. additionalNotes: type: array items: $ref: '#/components/schemas/qbd_note' description: Additional notes about this customer. preferredDeliveryMethod: anyOf: - type: string enum: - email - mail - none - type: 'null' description: >- The preferred method for delivering invoices and other documents to this customer. example: email priceLevel: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The customer's custom price level that QuickBooks automatically applies to calculate item rates in new transactions (e.g., invoices, sales receipts, sales orders, and credit memos) for this customer. While applied automatically, this can be overridden when creating individual transactions. Note that transactions will not show the price level itself, only the final `rate` calculated from it. example: id: 80000001-1234567890 fullName: Gold Member Pricing externalId: anyOf: - type: string description: >- 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: 12345678-abcd-1234-abcd-1234567890ab - type: 'null' taxRegistrationNumber: anyOf: - type: string - type: 'null' description: The customer's tax registration number, for use in Canada or the UK. example: GB123456789 currency: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The customer's currency. For built-in currencies, the name and code are standard ISO 4217 international values. For user-defined currencies, all values are editable. example: id: 80000001-1234567890 fullName: USD customFields: type: array items: $ref: '#/components/schemas/qbd_custom_field' description: >- The custom fields for the customer object, added as user-defined data extensions, not included in the standard QuickBooks object. required: - id - objectType - createdAt - updatedAt - revisionNumber - name - fullName - isActive - class - parent - sublevel - companyName - salutation - firstName - middleName - lastName - jobTitle - billingAddress - shippingAddress - alternateShippingAddresses - phone - alternatePhone - fax - email - ccEmail - contact - alternateContact - customContactFields - additionalContacts - customerType - terms - salesRepresentative - balance - totalBalance - salesTaxCode - salesTaxItem - salesTaxCountry - resaleNumber - accountNumber - creditLimit - preferredPaymentMethod - creditCard - jobStatus - jobStartDate - jobProjectedEndDate - jobEndDate - jobDescription - jobType - note - additionalNotes - preferredDeliveryMethod - priceLevel - externalId - taxRegistrationNumber - currency - customFields additionalProperties: false title: The Customer object x-conductor-object-type: other x-conductor-sidebar-group-name: Customers / Jobs summary: >- A customer record in QuickBooks Desktop represents either a business or individual who purchases goods or services, or a specific job/project being performed for that customer. Jobs are treated as sub-customers and inherit billing information from their parent customer while allowing for job-specific details to be tracked. qbd_shipping_address: type: object properties: name: anyOf: - type: string - type: 'null' description: >- The case-insensitive unique name of this shipping address, unique across all shipping addresses. **NOTE**: Shipping addresses do not have a `fullName` field because they are not hierarchical objects, which is why `name` is unique for them but not for objects that have parents. example: Alternate shipping address line1: anyOf: - type: string - type: 'null' description: >- The first line of the shipping address (e.g., street, PO Box, or company name). example: Conductor Labs Inc. line2: anyOf: - type: string - type: 'null' description: >- The second line of the shipping address, if needed (e.g., apartment, suite, unit, or building). example: 540 Market St. line3: anyOf: - type: string - type: 'null' description: The third line of the shipping address, if needed. example: Suite 100 line4: anyOf: - type: string - type: 'null' description: The fourth line of the shipping address, if needed. example: '' line5: anyOf: - type: string - type: 'null' description: The fifth line of the shipping address, if needed. example: '' city: anyOf: - type: string - type: 'null' description: >- The city, district, suburb, town, or village name of the shipping address. example: San Francisco state: anyOf: - type: string - type: 'null' description: The state, county, province, or region name of the shipping address. example: CA postalCode: anyOf: - type: string - type: 'null' description: The postal code or ZIP code of the shipping address. example: '94110' country: anyOf: - type: string - type: 'null' description: The country name of the shipping address. example: United States note: anyOf: - type: string - type: 'null' description: >- A note written at the bottom of the shipping address in the form in which it appears, such as the invoice form. example: Conductor HQ isDefaultShippingAddress: anyOf: - type: boolean - type: 'null' description: >- Indicates whether this shipping address is the default shipping address. example: true required: - name - line1 - line2 - line3 - line4 - line5 - city - state - postalCode - country - note - isDefaultShippingAddress additionalProperties: false title: The Shipping Address object x-conductor-object-type: nested qbd_custom_contact_field: type: object properties: name: type: string description: >- The name of the contact field (e.g., "old address", "secondary phone"). example: Main Phone value: anyOf: - type: string - type: 'null' description: The value of the contact field. example: 555-123-4567 required: - name - value additionalProperties: false title: The Custom Contact Field object x-conductor-object-type: nested qbd_contact: type: object properties: id: type: string description: >- The unique identifier assigned by QuickBooks to this contact. This ID is unique across all contacts but not across different QuickBooks object types. example: 80000001-1234567890 objectType: description: The type of object. This value is always `"qbd_contact"`. example: qbd_contact type: string const: qbd_contact createdAt: type: string description: >- The date and time when this contact 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. example: 2025-01-01T12:34:56.000Z updatedAt: type: string description: >- The date and time when this contact 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. example: 2025-02-01T12:34:56.000Z revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of this contact 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. example: '1721172183' name: anyOf: - type: string - type: 'null' description: The contact's full name. example: Jane Smith salutation: anyOf: - type: string - type: 'null' description: >- The contact's formal salutation title that precedes their name, such as "Mr.", "Ms.", or "Dr.". example: Dr. firstName: type: string description: The contact's first name. example: John middleName: anyOf: - type: string - type: 'null' description: The contact's middle name. example: A. lastName: anyOf: - type: string - type: 'null' description: The contact's last name. example: Doe jobTitle: anyOf: - type: string - type: 'null' description: The contact's job title. example: Purchasing Manager customContactFields: type: array items: $ref: '#/components/schemas/qbd_custom_contact_field' description: >- Additional custom contact fields for this contact, such as phone numbers or email addresses. required: - id - objectType - createdAt - updatedAt - revisionNumber - name - salutation - firstName - middleName - lastName - jobTitle - customContactFields additionalProperties: false title: The Contact object x-conductor-object-type: nested qbd_credit_card: type: object properties: number: anyOf: - type: string - type: 'null' description: >- The credit card number. Must be masked with lower case "x" and no dashes. example: xxxxxxxxxxxx1234 expirationMonth: anyOf: - type: number - type: 'null' description: The month when the credit card expires. example: 12 expirationYear: anyOf: - type: number - type: 'null' description: The year when the credit card expires. example: 2024 name: anyOf: - type: string - type: 'null' description: The cardholder's name on the card. example: John Doe address: anyOf: - type: string - type: 'null' description: The card's billing address. example: 1234 Main St, Anytown, USA, 12345 postalCode: anyOf: - type: string - type: 'null' description: The card's billing address ZIP or postal code. example: '12345' required: - number - expirationMonth - expirationYear - name - address - postalCode additionalProperties: false title: The Credit Card object x-conductor-object-type: nested qbd_note: type: object properties: id: type: number description: >- The auto-incrementing identifier assigned by QuickBooks to this note. example: 1 date: anyOf: - type: string format: date - type: 'null' description: >- The date this note was last updated, in ISO 8601 format (YYYY-MM-DD). example: 2024-01-01T00:00:00.000Z note: type: string description: The text of this note. example: This is a fun note. required: - id - date - note additionalProperties: false title: The Note object x-conductor-object-type: nested qbd_date_driven_term: type: object properties: id: type: string description: >- The unique identifier assigned by QuickBooks to this date-driven term. This ID is unique across all date-driven terms but not across different QuickBooks object types. example: 80000001-1234567890 objectType: description: The type of object. This value is always `"qbd_date_driven_term"`. example: qbd_date_driven_term type: string const: qbd_date_driven_term createdAt: type: string description: >- The date and time when this date-driven term 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. example: 2025-01-01T12:34:56.000Z updatedAt: type: string description: >- The date and time when this date-driven term 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. example: 2025-02-01T12:34:56.000Z revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of this date-driven term 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. example: '1721172183' name: type: string description: >- The case-insensitive unique name of this date-driven term, unique across all date-driven terms. **NOTE**: Date-driven terms do not have a `fullName` field because they are not hierarchical objects, which is why `name` is unique for them but not for objects that have parents. example: 2% 5th Net 25th isActive: type: boolean description: >- Indicates whether this date-driven term is active. Inactive objects are typically hidden from views and reports in QuickBooks. Defaults to `true`. example: true dueDayOfMonth: type: number description: The day of the month when full payment is due without discount. example: 15 gracePeriodDays: anyOf: - type: number - type: 'null' description: >- The number of days before `dueDayOfMonth` when an invoice or bill issued within this threshold is considered due the following month. For example, with `dueDayOfMonth` set to 15 and `gracePeriodDays` set to 2, an invoice issued on the 13th would be due on the 15th of the next month, while an invoice issued on the 12th would be due on the 15th of the current month. example: 2 discountDayOfMonth: anyOf: - type: number - type: 'null' description: >- The day of the month within which payment must be received to qualify for the discount specified by `discountPercentage`. example: 5 discountPercentage: anyOf: - type: string - type: 'null' description: >- The discount percentage applied to the payment if received on or before the specified `discountDayOfMonth`. The value is between 0 and 100. example: '10' required: - id - objectType - createdAt - updatedAt - revisionNumber - name - isActive - dueDayOfMonth - gracePeriodDays - discountDayOfMonth - discountPercentage additionalProperties: false title: The Date-Driven Term object x-conductor-object-type: other summary: >- A date-driven term shows the day of the month by which payment is due and can include a discount for early payment. qbd_deleted_list_object: type: object properties: listType: type: string enum: - account - billing_rate - class - currency - customer - customer_message - customer_type - date_driven_terms - employee - inventory_site - item_discount - item_fixed_asset - item_group - item_inventory - item_inventory_assembly - item_non_inventory - item_other_charge - item_payment - item_sales_tax - item_sales_tax_group - item_service - item_subtotal - job_type - other_name - payment_method - payroll_item_non_wage - payroll_item_wage - price_level - sales_representative - sales_tax_code - ship_method - standard_terms - to_do - unit_of_measure_set - vehicle - vendor - vendor_type - workers_comp_code description: The type of deleted list object (i.e., non-transaction). example: customer id: type: string description: >- The unique identifier assigned by QuickBooks to this deleted list-object. This ID is unique across all deleted list-objects but not across different QuickBooks object types. example: 80000001-1234567890 objectType: description: >- The type of object. This value is always `"qbd_deleted_list_object"`. example: qbd_deleted_list_object type: string const: qbd_deleted_list_object createdAt: type: string description: >- The date and time when this deleted list-object 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. example: 2025-01-01T12:34:56.000Z deletedAt: type: string description: >- The date and time when this deleted list-object was deleted, 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. example: 2025-02-01T12:34:56.000Z fullName: anyOf: - type: string - type: 'null' description: >- The case-insensitive fully-qualified unique name of this deleted list-object, formed by combining the names of its hierarchical parent objects with its own `name`, separated by colons. For example, if a deleted list-object is under "Parent" and has the `name` "Child", its `fullName` would be "Parent:Child". **NOTE**: Unlike `name`, `fullName` is guaranteed to be unique across all deleted list-object objects. However, `fullName` can still be arbitrarily changed by the QuickBooks user when they modify the underlying `name` field. example: Parent:Child required: - listType - id - objectType - createdAt - deletedAt - fullName additionalProperties: false title: The Deleted List-Object object x-conductor-object-type: other summary: >- A deleted list-object represents a QuickBooks list object (e.g., customer, vendor, item) that has been removed from the company file within the last 90 days. qbd_deleted_transaction: type: object properties: transactionType: type: string enum: - 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 - purchase_order - receive_payment - sales_order - sales_receipt - sales_tax_payment_check - time_tracking - transfer_inventory - vehicle_mileage - vendor_credit description: The type of deleted transaction. example: invoice id: type: string description: >- The unique identifier assigned by QuickBooks to this deleted transaction. This ID is unique across all transaction types. example: 123ABC-1234567890 objectType: description: >- The type of object. This value is always `"qbd_deleted_transaction"`. example: qbd_deleted_transaction type: string const: qbd_deleted_transaction createdAt: type: string description: >- The date and time when this deleted transaction 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. example: 2025-01-01T12:34:56.000Z deletedAt: type: string description: >- The date and time when this deleted transaction was deleted, 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. example: 2025-02-01T12:34:56.000Z refNumber: anyOf: - type: string - type: 'null' description: >- The case-sensitive user-defined reference number for this deleted 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. example: INV-1234 required: - transactionType - id - objectType - createdAt - deletedAt - refNumber additionalProperties: false title: The Deleted Transaction object x-conductor-object-type: transaction summary: >- A deleted transaction represents a QuickBooks transaction (e.g., invoice, bill, estimate) that has been deleted from the company file. qbd_deposit: type: object properties: id: type: string description: >- The unique identifier assigned by QuickBooks to this deposit. This ID is unique across all transaction types. example: 123ABC-1234567890 objectType: description: The type of object. This value is always `"qbd_deposit"`. example: qbd_deposit type: string const: qbd_deposit createdAt: type: string description: >- The date and time when this deposit 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. example: 2025-01-01T12:34:56.000Z updatedAt: type: string description: >- The date and time when this deposit 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. example: 2025-02-01T12:34:56.000Z revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of this deposit 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. example: '1721172183' transactionDate: type: string format: date description: The date of this deposit, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-01' depositToAccount: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: The account where the funds for this deposit have been deposited. example: id: 80000001-1234567890 fullName: Checking memo: anyOf: - type: string - type: 'null' description: A memo or note for this deposit. example: Batch settlement deposit totalAmount: anyOf: - type: string - type: 'null' description: >- The total monetary amount deposited into this deposit's destination account, represented as a decimal string. example: '1000.00' currency: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The deposit's currency. For built-in currencies, the name and code are standard ISO 4217 international values. For user-defined currencies, all values are editable. example: id: 80000001-1234567890 fullName: USD exchangeRate: anyOf: - type: number - type: 'null' description: >- The market exchange rate between this deposit'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: 1.2345 totalAmountInHomeCurrency: anyOf: - type: string - type: 'null' description: >- This deposit's total monetary amount converted to the home currency of the QuickBooks company file, represented as a decimal string. example: '1234.56' cashBack: anyOf: - $ref: '#/components/schemas/qbd_deposit_cash_back_line' - type: 'null' description: >- Cash back taken out of this deposit and recorded to another account, such as Petty Cash. externalId: anyOf: - type: string description: >- 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: 12345678-abcd-1234-abcd-1234567890ab - type: 'null' lines: type: array items: $ref: '#/components/schemas/qbd_deposit_line' description: >- The deposit's deposit lines, each representing either an existing payment selected for deposit or a manual transfer from another account into the deposit account. customFields: type: array items: $ref: '#/components/schemas/qbd_custom_field' description: >- The custom fields for the deposit object, added as user-defined data extensions, not included in the standard QuickBooks object. required: - id - objectType - createdAt - updatedAt - revisionNumber - transactionDate - depositToAccount - memo - totalAmount - currency - exchangeRate - totalAmountInHomeCurrency - cashBack - externalId - lines - customFields additionalProperties: false title: The Deposit object x-conductor-object-type: transaction summary: >- A deposit records funds moved into a QuickBooks Desktop bank or other asset account. It is commonly used to group customer payments from Undeposited Funds into the bank deposit that appears on the bank statement, and it can also include manual deposit lines and cash back. qbd_deposit_cash_back_line: type: object properties: id: type: string description: >- The unique identifier assigned by QuickBooks to this deposit cash-back line. This ID is unique across all transaction line types. example: 456DEF-1234567890 objectType: description: >- The type of object. This value is always `"qbd_deposit_cash_back_line"`. example: qbd_deposit_cash_back_line type: string const: qbd_deposit_cash_back_line account: type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false description: >- The account where this deposit cash-back line's cash-back amount is recorded, such as Petty Cash. This amount reduces the total credited to the deposit's destination account. example: id: 80000001-1234567890 fullName: Petty Cash memo: anyOf: - type: string - type: 'null' description: A memo or note for this deposit cash-back line. example: Cash back from deposit amount: anyOf: - type: string - type: 'null' description: >- The cash-back amount taken out of the deposit and recorded to this deposit cash-back line's account, represented as a decimal string. example: '1000.00' required: - id - objectType - account - memo - amount additionalProperties: false title: The Deposit Cash-Back Line object x-conductor-object-type: nested qbd_deposit_line: type: object properties: transactionType: anyOf: - type: string enum: - 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 - type: 'null' description: The type of transaction for this deposit line. example: invoice paymentTransactionId: anyOf: - type: string maxLength: 36 description: >- For payment-based deposit lines, the ID of the source payment included in this deposit line. For manual deposit lines, this is null. example: 123ABC-1234567890 - type: 'null' id: type: string description: >- The unique identifier assigned by QuickBooks to this deposit line. This ID is unique across all transaction line types. example: 456DEF-1234567890 objectType: description: The type of object. This value is always `"qbd_deposit_line"`. example: qbd_deposit_line type: string const: qbd_deposit_line paymentTransactionLineId: anyOf: - type: string maxLength: 36 description: >- For payment-based deposit lines, the line ID of the specific source payment line included in this deposit line. For manual deposit lines, this is null. example: 456DEF-1234567890 - type: 'null' entity: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The customer, vendor, employee, or person on QuickBooks's "Other Names" list associated with this deposit line. example: id: 80000001-1234567890 fullName: Acme Corporation account: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The account associated with this deposit line. For manual deposit lines, this is the account the funds were transferred from into the deposit's destination account. example: id: 80000001-1234567890 fullName: Undeposited Funds memo: anyOf: - type: string - type: 'null' description: A memo or note for this deposit line. example: Payment batched into settlement deposit checkNumber: anyOf: - type: string - type: 'null' description: The check number of a check received for this deposit line. example: '1234567890' paymentMethod: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: The deposit line's payment method (e.g., cash, check, credit card). example: id: 80000001-1234567890 fullName: Credit Card class: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The deposit 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. example: id: 80000001-1234567890 fullName: Retail Sales amount: anyOf: - type: string - type: 'null' description: >- The amount this deposit line contributes to the deposit's destination account, represented as a decimal string. example: '1000.00' required: - transactionType - paymentTransactionId - id - objectType - paymentTransactionLineId - entity - account - memo - checkNumber - paymentMethod - class - amount additionalProperties: false title: The Deposit Line object x-conductor-object-type: nested qbd_discount_item: type: object properties: id: type: string description: >- The unique identifier assigned by QuickBooks to this discount item. This ID is unique across all discount items but not across different QuickBooks object types. example: 80000001-1234567890 objectType: description: The type of object. This value is always `"qbd_discount_item"`. example: qbd_discount_item type: string const: qbd_discount_item createdAt: type: string description: >- The date and time when this discount item 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. example: 2025-01-01T12:34:56.000Z updatedAt: type: string description: >- The date and time when this discount item 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. example: 2025-02-01T12:34:56.000Z revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of this discount item 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. example: '1721172183' name: type: string description: >- The case-insensitive name of this discount item. Not guaranteed to be unique because it does not include the names of its hierarchical parent objects like `fullName` does. For example, two discount items could both have the `name` "10% labor discount", but they could have unique `fullName` values, such as "Discounts:10% labor discount" and "Promotions:10% labor discount". example: 10% labor discount fullName: type: string description: >- The case-insensitive fully-qualified unique name of this discount item, formed by combining the names of its hierarchical parent objects with its own `name`, separated by colons. For example, if a discount item is under "Discounts" and has the `name` "10% labor discount", its `fullName` would be "Discounts:10% labor discount". **NOTE**: Unlike `name`, `fullName` is guaranteed to be unique across all discount item objects. However, `fullName` can still be arbitrarily changed by the QuickBooks user when they modify the underlying `name` field. example: Discounts:10% labor discount barcode: anyOf: - type: string - type: 'null' description: The discount item's barcode. example: '012345678905' isActive: type: boolean description: >- Indicates whether this discount item is active. Inactive objects are typically hidden from views and reports in QuickBooks. Defaults to `true`. example: true class: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The discount item'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. example: id: 80000001-1234567890 fullName: Discounts parent: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The parent discount item one level above this one in the hierarchy. For example, if this discount item has a `fullName` of "Discounts:10% labor discount", its parent has a `fullName` of "Discounts". If this discount item is at the top level, this field will be `null`. example: id: 80000001-1234567890 fullName: Discounts sublevel: type: number description: >- The depth level of this discount item in the hierarchy. A top-level discount item has a `sublevel` of 0; each subsequent sublevel increases this number by 1. For example, a discount item with a `fullName` of "Discounts:10% labor discount" would have a `sublevel` of 1. example: 1 description: anyOf: - type: string - type: 'null' description: >- The discount item's description that will appear on sales forms that include this item. example: 10% discount for early payment on labor charges salesTaxCode: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The default sales-tax code for this discount item, determining whether it is taxable or non-taxable. This can be overridden at the transaction-line level. 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. example: id: 80000001-1234567890 fullName: Non discountRate: anyOf: - type: string - type: 'null' description: >- The monetary amount to subtract from the total or subtotal when applying this discount item to a transaction, represented as a decimal string. **NOTE**: A flat rate discount applies to ALL lines recorded above it and distributes the discount amount equally across those lines, which affects tax calculations. For example, a $10 discount applied to a $100 taxable item and $100 non-taxable item would result in a $5 taxable discount and $5 non-taxable discount. example: '25.00' discountRatePercent: anyOf: - type: string - type: 'null' description: >- The percentage amount to subtract from the total or subtotal when applying this discount item to a transaction. **NOTE**: A percentage discount only applies to the line immediately above it, so tax implications only affect that specific line. example: '10.5' account: type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false description: >- The posting account to which transactions involving this discount item are posted for tracking discounts. example: id: 80000001-1234567890 fullName: Discounts externalId: anyOf: - type: string description: >- 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: 12345678-abcd-1234-abcd-1234567890ab - type: 'null' customFields: type: array items: $ref: '#/components/schemas/qbd_custom_field' description: >- The custom fields for the discount item object, added as user-defined data extensions, not included in the standard QuickBooks object. required: - id - objectType - createdAt - updatedAt - revisionNumber - name - fullName - barcode - isActive - class - parent - sublevel - description - salesTaxCode - discountRate - discountRatePercent - account - externalId - customFields additionalProperties: false title: The Discount Item object x-conductor-object-type: item summary: >- A discount item applies a percentage or fixed amount reduction to the total or subtotal of the line directly above it. Items must be subtotaled first because discounts only affect the preceding line. Unlike discounts for early payments, which use standard-terms or date-driven-terms. Important: Never specify a quantity in a transaction when using a discount item. qbd_employee: type: object properties: id: type: string description: >- The unique identifier assigned by QuickBooks to this employee. This ID is unique across all employees but not across different QuickBooks object types. example: 80000001-1234567890 objectType: description: The type of object. This value is always `"qbd_employee"`. example: qbd_employee type: string const: qbd_employee createdAt: type: string description: >- The date and time when this employee 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. example: 2025-01-01T12:34:56.000Z updatedAt: type: string description: >- The date and time when this employee 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. example: 2025-02-01T12:34:56.000Z revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of this employee 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. example: '1721172183' name: type: string description: >- The case-insensitive unique name of this employee, unique across all employees. A concatenation of the employee's `firstName`, `middleName`, and `lastName` fields. **NOTE**: Employees do not have a `fullName` field because they are not hierarchical objects, which is why `name` is unique for them but not for objects that have parents. example: John Doe isActive: type: boolean description: >- Indicates whether this employee is active. Inactive objects are typically hidden from views and reports in QuickBooks. Defaults to `true`. example: true salutation: anyOf: - type: string - type: 'null' description: >- The employee's formal salutation title that precedes their name, such as "Mr.", "Ms.", or "Dr.". example: Dr. firstName: anyOf: - type: string - type: 'null' description: The employee's first name. example: John middleName: anyOf: - type: string - type: 'null' description: The employee's middle name. example: A. lastName: anyOf: - type: string - type: 'null' description: The employee's last name. example: Doe jobTitle: anyOf: - type: string - type: 'null' description: The employee's job title. example: Purchasing Manager supervisor: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The employee's supervisor. Found in the "employment job details" section of the employee's record in QuickBooks. example: id: 80000001-1234567890 fullName: John Doe department: anyOf: - type: string - type: 'null' description: >- The employee's department. Found in the "employment job details" section of the employee's record in QuickBooks. example: Sales description: anyOf: - type: string - type: 'null' description: >- A description of this employee. Found in the "employment job details" section of the employee's record in QuickBooks. example: This employee is a key employee. targetBonus: anyOf: - type: string - type: 'null' description: >- The target bonus for this employee, represented as a decimal string. Found in the "employment job details" section of the employee's record in QuickBooks. example: '10000.00' address: anyOf: - $ref: '#/components/schemas/qbd_employee_address' - type: 'null' description: >- The employee's address. If the company uses QuickBooks Payroll for this employee, this address must specify a complete address, including city, state, ZIP (or postal) code, and at least one line of the street address. printAs: anyOf: - type: string - type: 'null' description: >- The name to use when printing this employee from QuickBooks. By default, this is the same as the `name` field. example: John Doe phone: anyOf: - type: string - type: 'null' description: The employee's primary telephone number. example: +1-555-123-4567 mobile: anyOf: - type: string - type: 'null' description: The employee's mobile phone number. example: +1-555-555-1212 pager: anyOf: - type: string - type: 'null' description: The employee's pager number. example: +1-555-555-1212 pagerPin: anyOf: - type: string - type: 'null' description: The employee's pager PIN. example: '1234' alternatePhone: anyOf: - type: string - type: 'null' description: The employee's alternate telephone number. example: +1-555-987-6543 fax: anyOf: - type: string - type: 'null' description: The employee's fax number. example: +1-555-555-1212 ssn: anyOf: - type: string - type: 'null' description: >- The employee's Social Security Number. The value can be with or without dashes. **NOTE**: This field cannot be changed after the employee is created. example: 123-45-6789 email: anyOf: - type: string - type: 'null' description: The employee's email address. example: employee@example.com customContactFields: type: array items: $ref: '#/components/schemas/qbd_custom_contact_field' description: >- Additional custom contact fields for this employee, such as phone numbers or email addresses. emergencyContact: anyOf: - $ref: '#/components/schemas/qbd_emergency_contact_set' - type: 'null' description: The employee's emergency contacts. employeeType: anyOf: - type: string enum: - officer - owner - regular - statutory - type: 'null' description: >- The employee type. This affects payroll taxes - a statutory employee is defined as an employee by statute. Note that owners/partners are typically on the "Other Names" list in QuickBooks, but if listed as an employee their type will be `owner`. example: regular employmentStatus: anyOf: - type: string enum: - full_time - part_time - type: 'null' description: >- Indicates whether this employee is a part-time or full-time employee. example: full_time overtimeExemptStatus: anyOf: - type: string enum: - exempt - non_exempt - type: 'null' description: > Indicates whether this employee is exempt from overtime pay. This classification is based on U.S. labor laws (FLSA). example: exempt keyEmployeeStatus: anyOf: - type: string enum: - key_employee - non_key_employee - type: 'null' description: Indicates whether this employee is a key employee. example: key_employee gender: anyOf: - type: string enum: - male - female - type: 'null' description: This employee's gender. example: male hiredDate: anyOf: - type: string format: date - type: 'null' description: The date this employee was hired, in ISO 8601 format (YYYY-MM-DD). example: 2024-01-01T00:00:00.000Z originalHireDate: anyOf: - type: string format: date - type: 'null' description: >- The original hire date for this employee, in ISO 8601 format (YYYY-MM-DD). example: 2024-01-01T00:00:00.000Z adjustedServiceDate: anyOf: - type: string format: date - type: 'null' description: >- The adjusted service date for this employee, in ISO 8601 format (YYYY-MM-DD). This date accounts for previous employment periods or leaves that affect seniority. example: 2024-01-01T00:00:00.000Z terminationDate: anyOf: - type: string format: date - type: 'null' description: >- The date this employee's employment ended with the company, in ISO 8601 format (YYYY-MM-DD). This is also known as the released date or separation date. example: 2024-01-01T00:00:00.000Z birthDate: anyOf: - type: string format: date - type: 'null' description: This employee's date of birth, in ISO 8601 format (YYYY-MM-DD). example: 1990-01-01T00:00:00.000Z usCitizenshipStatus: anyOf: - type: string enum: - citizen - non_citizen - type: 'null' description: Indicates whether this employee is a U.S. citizen. example: citizen ethnicity: anyOf: - type: string enum: - american_indian - asian - black - hawaiian - hispanic - white - two_or_more_races - type: 'null' description: This employee's ethnicity. example: asian disabilityStatus: anyOf: - type: string enum: - disabled - non_disabled - type: 'null' description: Indicates whether this employee is disabled. example: disabled disabilityDescription: anyOf: - type: string - type: 'null' description: A description of this employee's disability. example: Cerebral Palsy i9OnFileStatus: anyOf: - type: string enum: - on_file - not_on_file - type: 'null' description: Indicates whether this employee's I-9 is on file. example: on_file workAuthorizationExpirationDate: anyOf: - type: string format: date - type: 'null' description: >- The date this employee's work authorization expires, in ISO 8601 format (YYYY-MM-DD). example: 2024-01-01T00:00:00.000Z usVeteranStatus: anyOf: - type: string enum: - veteran - non_veteran - type: 'null' description: Indicates whether this employee is a U.S. veteran. example: veteran militaryStatus: anyOf: - type: string enum: - active - reserve - type: 'null' description: This employee's military status if they are a U.S. veteran. example: active accountNumber: anyOf: - type: string - type: 'null' description: >- The employee's account number, which appears in the QuickBooks chart of accounts, reports, and graphs. Note that if the "Use Account Numbers" preference is turned off in QuickBooks, the account number may not be visible in the user interface, but it can still be set and retrieved through the API. example: '1010' note: anyOf: - type: string - type: 'null' description: A note or comment about this employee. example: This employee is a key employee. additionalNotes: type: array items: $ref: '#/components/schemas/qbd_note' description: Additional notes about this employee. billingRate: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The employee's billing rate, used to override service item rates in time tracking activities. example: id: 80000001-1234567890 fullName: Standard Rate employeePayroll: anyOf: - $ref: '#/components/schemas/qbd_employee_payroll_info' - type: 'null' description: >- The employee's payroll information. **IMPORTANT**: QuickBooks Desktop only returns this field if the connected app has personal data access enabled. If this field is `null` or missing, confirm this setting is enabled in QuickBooks Desktop: sign in as Admin in Single-User Mode and go to `Edit > Preferences > Integrated Applications > Company Preferences`, select the app, click `Properties`, then check "Allow this application to access personal data such as Social Security Numbers and customer credit card information". externalId: anyOf: - type: string description: >- 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: 12345678-abcd-1234-abcd-1234567890ab - type: 'null' customFields: type: array items: $ref: '#/components/schemas/qbd_custom_field' description: >- The custom fields for the employee object, added as user-defined data extensions, not included in the standard QuickBooks object. required: - id - objectType - createdAt - updatedAt - revisionNumber - name - isActive - salutation - firstName - middleName - lastName - jobTitle - supervisor - department - description - targetBonus - address - printAs - phone - mobile - pager - pagerPin - alternatePhone - fax - ssn - email - customContactFields - emergencyContact - employeeType - employmentStatus - overtimeExemptStatus - keyEmployeeStatus - gender - hiredDate - originalHireDate - adjustedServiceDate - terminationDate - birthDate - usCitizenshipStatus - ethnicity - disabilityStatus - disabilityDescription - i9OnFileStatus - workAuthorizationExpirationDate - usVeteranStatus - militaryStatus - accountNumber - note - additionalNotes - billingRate - employeePayroll - externalId - customFields additionalProperties: false title: The Employee object x-conductor-object-type: other summary: >- An employee represents a person employed by the company. It stores personal information, employment details, and payroll data used for personnel management and payroll processing. qbd_employee_address: type: object properties: line1: anyOf: - type: string - type: 'null' description: >- The first line of the employee address (e.g., street, PO Box, or company name). example: Conductor Labs Inc. line2: anyOf: - type: string - type: 'null' description: >- The second line of the employee address, if needed (e.g., apartment, suite, unit, or building). example: 540 Market St. line3: anyOf: - type: string - type: 'null' description: The third line of the employee address, if needed. example: Suite 100 line4: anyOf: - type: string - type: 'null' description: The fourth line of the employee address, if needed. example: '' city: anyOf: - type: string - type: 'null' description: >- The city, district, suburb, town, or village name of the employee address. example: San Francisco state: anyOf: - type: string - type: 'null' description: >- The U.S. state or Canadian province of the employee address. QuickBooks requires this field to be a two-letter abbreviation (e.g., "CA" for California or "ON" for Ontario). See enum for all possible values. QuickBooks may reject values that the connected company file's edition does not support (e.g., a Canadian province on a U.S. company file). **NOTE:** This `state` field stays enum-constrained when creating or updating an employee, but we've seen QuickBooks return values outside its own enum in responses, so Conductor surfaces the raw QuickBooks string unchanged instead of enforcing the enum. example: CA postalCode: anyOf: - type: string - type: 'null' description: The postal code or ZIP code of the employee address. example: '94110' country: anyOf: - type: string - type: 'null' description: The country name of the employee address. example: United States required: - line1 - line2 - line3 - line4 - city - state - postalCode - country additionalProperties: false title: The Employee Address object x-conductor-object-type: nested qbd_emergency_contact_set: type: object properties: primaryContact: anyOf: - $ref: '#/components/schemas/qbd_emergency_contact' - type: 'null' description: The employee's primary emergency contact. secondaryContact: anyOf: - $ref: '#/components/schemas/qbd_emergency_contact' - type: 'null' description: The employee's secondary emergency contact. required: - primaryContact - secondaryContact additionalProperties: false title: The Emergency Contacts object x-conductor-object-type: nested qbd_emergency_contact: type: object properties: name: type: string description: >- The name of the contact field (e.g., "old address", "secondary phone"). example: Main Phone value: anyOf: - type: string - type: 'null' description: The value of the contact field. example: 555-123-4567 relation: anyOf: - type: string enum: - brother - daughter - father - friend - mother - other - partner - sister - son - spouse - type: 'null' description: The relationship of the employee to the employee. example: spouse required: - name - value - relation additionalProperties: false title: The Emergency Contact object x-conductor-object-type: nested qbd_employee_payroll_info: type: object properties: payPeriod: anyOf: - type: string enum: - biweekly - daily - monthly - quarterly - semimonthly - weekly - yearly - type: 'null' description: >- How frequently this employee is paid (e.g., weekly, biweekly, monthly). This determines the schedule for generating paychecks. example: weekly class: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The employee'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. example: id: 80000001-1234567890 fullName: Payroll earnings: type: array items: $ref: '#/components/schemas/qbd_earnings' description: The employee's earnings. useTimeDataToCreatePaychecks: anyOf: - type: string enum: - does_not_use_time_data - not_set - uses_time_data - type: 'null' description: >- Indicates whether this employee is using time-tracking data to create paychecks. example: uses_time_data sickHours: anyOf: - $ref: '#/components/schemas/qbd_sick_hours' - type: 'null' description: >- The employee's sick hours, including how sick time is accrued and the total hours accrued. vacationHours: anyOf: - $ref: '#/components/schemas/qbd_vacation_hours' - type: 'null' description: >- The employee's vacation hours, including how vacation time is accrued and the total hours accrued. required: - payPeriod - class - earnings - useTimeDataToCreatePaychecks - sickHours - vacationHours additionalProperties: false title: The Employee Payroll Info object x-conductor-object-type: nested qbd_earnings: type: object properties: payrollWageItem: type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false description: >- The payroll wage item that defines how this employee is paid (e.g., Regular Pay, Overtime Pay). This determines the payment scheme used for payroll calculations. example: id: 80000001-1234567890 fullName: Regular Pay rate: anyOf: - type: string - type: 'null' description: The hourly rate for this employee, represented as a decimal string. example: '10.00' ratePercent: anyOf: - type: string - type: 'null' description: The hourly rate for this employee expressed as a percentage. example: '10.5' required: - payrollWageItem - rate - ratePercent additionalProperties: false title: The Earnings object x-conductor-object-type: nested qbd_sick_hours: type: object properties: hoursAvailable: anyOf: - type: string - type: 'null' description: >- The total number of sick hours currently available for the employee to use, in ISO 8601 format for time intervals (PTnHnMnS). For example, 1 hour and 30 minutes is represented as PT1H30M. Defaults to 0. example: PT8H30M accrualPeriod: anyOf: - type: string enum: - accrues_annually - accrues_hourly - accrues_per_paycheck - type: 'null' description: How frequently the employee's sick hours are accrued. example: accrues_per_paycheck hoursAccruedPerPeriod: anyOf: - type: string - type: 'null' description: >- The number of sick hours the employee will accrue per accrual period, in ISO 8601 format for time intervals (PTnHnMnS). For example, 1 hour and 30 minutes is represented as PT1H30M. example: PT8H0M maximumHours: anyOf: - type: string - type: 'null' description: >- The maximum number of sick hours the employee can accrue, in ISO 8601 format for time intervals (PTnHnMnS). For example, 1 hour and 30 minutes is represented as PT1H30M. example: PT80H0M resetsHoursEachYear: anyOf: - type: boolean - type: 'null' description: >- Indicates whether the employee's sick hours reset to zero at the beginning of the new year. example: false hoursUsed: anyOf: - type: string - type: 'null' description: >- The number of sick hours the employee has used, in ISO 8601 format for time intervals (PTnHnMnS). For example, 1 hour and 30 minutes is represented as PT1H30M. example: PT2H45M accrualStartDate: anyOf: - type: string format: date - type: 'null' description: >- The date the employee's sick hours began to accrue, in ISO 8601 format (YYYY-MM-DD). example: 2024-01-01T00:00:00.000Z required: - hoursAvailable - accrualPeriod - hoursAccruedPerPeriod - maximumHours - resetsHoursEachYear - hoursUsed - accrualStartDate additionalProperties: false title: The Sick Hours object x-conductor-object-type: nested qbd_vacation_hours: type: object properties: hoursAvailable: anyOf: - type: string - type: 'null' description: >- The total number of vacation hours currently available for the employee to use, in ISO 8601 format for time intervals (PTnHnMnS). For example, 1 hour and 30 minutes is represented as PT1H30M. Defaults to 0. example: PT8H30M accrualPeriod: anyOf: - type: string enum: - accrues_annually - accrues_hourly - accrues_per_paycheck - type: 'null' description: How frequently the employee's vacation hours are accrued. example: accrues_per_paycheck hoursAccruedPerPeriod: anyOf: - type: string - type: 'null' description: >- The number of vacation hours the employee will accrue per accrual period, in ISO 8601 format for time intervals (PTnHnMnS). For example, 1 hour and 30 minutes is represented as PT1H30M. example: PT8H0M maximumHours: anyOf: - type: string - type: 'null' description: >- The maximum number of vacation hours the employee can accrue, in ISO 8601 format for time intervals (PTnHnMnS). For example, 1 hour and 30 minutes is represented as PT1H30M. example: PT80H0M resetsHoursEachYear: anyOf: - type: boolean - type: 'null' description: >- Indicates whether the employee's vacation hours reset to zero at the beginning of the new year. example: false hoursUsed: anyOf: - type: string - type: 'null' description: >- The number of vacation hours the employee has used, in ISO 8601 format for time intervals (PTnHnMnS). For example, 1 hour and 30 minutes is represented as PT1H30M. example: PT2H45M accrualStartDate: anyOf: - type: string format: date - type: 'null' description: >- The date the employee's vacation hours began to accrue, in ISO 8601 format (YYYY-MM-DD). example: 2024-01-01T00:00:00.000Z required: - hoursAvailable - accrualPeriod - hoursAccruedPerPeriod - maximumHours - resetsHoursEachYear - hoursUsed - accrualStartDate additionalProperties: false title: The Vacation Hours object x-conductor-object-type: nested qbd_estimate: type: object properties: id: type: string description: >- The unique identifier assigned by QuickBooks to this estimate. This ID is unique across all transaction types. example: 123ABC-1234567890 objectType: description: The type of object. This value is always `"qbd_estimate"`. example: qbd_estimate type: string const: qbd_estimate createdAt: type: string description: >- The date and time when this estimate 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. example: 2025-01-01T12:34:56.000Z updatedAt: type: string description: >- The date and time when this estimate 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. example: 2025-02-01T12:34:56.000Z revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of this estimate 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. example: '1721172183' customer: type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false description: The customer or customer-job associated with this estimate. example: id: 80000001-1234567890 fullName: Acme Corporation class: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The estimate'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 estimate's line items unless overridden at the line item level. example: id: 80000001-1234567890 fullName: Web Development documentTemplate: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The predefined template in QuickBooks that determines the layout and formatting for this estimate when printed or displayed. example: id: 80000001-1234567890 fullName: Estimate Template transactionDate: type: string format: date description: The date of this estimate, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-01' refNumber: anyOf: - type: string - type: 'null' description: >- The case-sensitive user-defined reference number for this estimate, 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. example: EST-1234 billingAddress: anyOf: - $ref: '#/components/schemas/qbd_address' - type: 'null' description: The estimate's billing address. shippingAddress: anyOf: - $ref: '#/components/schemas/qbd_address' - type: 'null' description: The estimate's shipping address. isActive: type: boolean description: >- Indicates whether this estimate is active. Inactive objects are typically hidden from views and reports in QuickBooks. Defaults to `true`. example: true purchaseOrderNumber: anyOf: - type: string - type: 'null' description: >- The customer's Purchase Order (PO) number associated with this estimate. This field is often used to cross-reference the estimate with the customer's purchasing system. example: PO-1234 terms: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The estimate's payment terms, defining when payment is due and any applicable discounts. example: id: 80000001-1234567890 fullName: Net 30 dueDate: anyOf: - type: string format: date - type: 'null' description: >- The date by which this estimate must be paid, in ISO 8601 format (YYYY-MM-DD). example: 2024-10-31T00:00:00.000Z salesRepresentative: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The estimate's sales representative. Sales representatives can be employees, vendors, or other names in QuickBooks. example: id: 80000001-1234567890 fullName: Jane Doe shipmentOrigin: anyOf: - type: string - type: 'null' description: >- The origin location from where the product associated with this estimate 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. example: San Francisco, CA subtotal: type: string description: >- The subtotal of this estimate, which is the sum of all estimate lines before taxes and payments are applied, represented as a decimal string. example: '1000.00' salesTaxItem: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The sales-tax item used to calculate the actual tax amount for this estimate's transactions by applying a specific tax rate collected for a single tax agency. Unlike `salesTaxCode`, which only indicates general taxability, this field drives the actual tax calculation and reporting. example: id: 80000001-1234567890 fullName: State Sales Tax salesTaxPercentage: anyOf: - type: string - type: 'null' description: >- The sales tax percentage applied to this estimate, represented as a decimal string. example: '0.07' salesTaxTotal: anyOf: - type: string - type: 'null' description: >- The total amount of sales tax charged for this estimate, represented as a decimal string. example: '10.00' totalAmount: type: string description: >- The total monetary amount of this estimate, equivalent to the sum of the amounts in `lines` and `lineGroups`, represented as a decimal string. example: '1000.00' currency: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The estimate's currency. For built-in currencies, the name and code are standard ISO 4217 international values. For user-defined currencies, all values are editable. example: id: 80000001-1234567890 fullName: USD exchangeRate: anyOf: - type: number - type: 'null' description: >- The market exchange rate between this estimate'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: 1.2345 totalAmountInHomeCurrency: anyOf: - type: string - type: 'null' description: >- The total monetary amount of this estimate converted to the home currency of the QuickBooks company file. Represented as a decimal string. example: '1234.56' memo: anyOf: - type: string - type: 'null' description: >- A memo or note for this estimate that appears in reports, but not on the estimate. Use `customerMessage` to add a note to this estimate. example: Proposal for website redesign customerMessage: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: The message to display to the customer on the estimate. example: id: 80000001-1234567890 fullName: Thank you for your business! isQueuedForEmail: anyOf: - type: boolean - type: 'null' description: >- Indicates whether this estimate is included in the queue of documents for QuickBooks to email to the customer. example: true salesTaxCode: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The sales-tax code for this estimate, determining whether it is taxable or non-taxable. This can be overridden at the transaction-line level. 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. example: id: 80000001-1234567890 fullName: Non otherCustomField: anyOf: - type: string - type: 'null' description: >- A built-in custom field for additional information specific to this estimate. Unlike the user-defined fields in the `customFields` array, this is a standard QuickBooks field that exists for all estimates for convenience. Developers often use this field for tracking information that doesn't fit into other standard QuickBooks fields. Unlike `otherCustomField1` and `otherCustomField2`, which are line item fields, this exists at the transaction level. Hidden by default in the QuickBooks UI. example: Special handling required externalId: anyOf: - type: string description: >- 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: 12345678-abcd-1234-abcd-1234567890ab - type: 'null' linkedTransactions: type: array items: $ref: '#/components/schemas/qbd_linked_transaction' description: >- The estimate'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 estimates to receive this field because it is not returned by default. lines: type: array items: $ref: '#/components/schemas/qbd_estimate_line' description: >- The estimate's line items, each representing a single product or service quoted. lineGroups: type: array items: $ref: '#/components/schemas/qbd_estimate_line_group' description: >- The estimate's line item groups, each representing a predefined set of related items. customFields: type: array items: $ref: '#/components/schemas/qbd_custom_field' description: >- The custom fields for the estimate object, added as user-defined data extensions, not included in the standard QuickBooks object. required: - id - objectType - createdAt - updatedAt - revisionNumber - customer - class - documentTemplate - transactionDate - refNumber - billingAddress - shippingAddress - isActive - purchaseOrderNumber - terms - dueDate - salesRepresentative - shipmentOrigin - subtotal - salesTaxItem - salesTaxPercentage - salesTaxTotal - totalAmount - currency - exchangeRate - totalAmountInHomeCurrency - memo - customerMessage - isQueuedForEmail - salesTaxCode - otherCustomField - externalId - linkedTransactions - lines - lineGroups - customFields additionalProperties: false title: The Estimate object x-conductor-object-type: transaction summary: >- An estimate is a formal proposal detailing costs and terms for goods or services to a customer. It can be called a "bid" or "proposal" and uses similar fields to invoices in QuickBooks. As a non-posting transaction, it serves as a planning tool that can be converted to an invoice upon customer acceptance. qbd_estimate_line: type: object properties: id: type: string description: >- The unique identifier assigned by QuickBooks to this estimate line. This ID is unique across all transaction line types. example: 456DEF-1234567890 objectType: description: The type of object. This value is always `"qbd_estimate_line"`. example: qbd_estimate_line type: string const: qbd_estimate_line item: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The item associated with this estimate 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. example: id: 80000001-1234567890 fullName: Widget A description: anyOf: - type: string - type: 'null' description: A description of this estimate line. example: Graphic illustrations for website redesign quantity: anyOf: - type: number - type: 'null' description: >- The quantity of the item associated with this estimate line. This field cannot be cleared. **NOTE**: Do not use this field if the associated item is a discount item. example: 5 unitOfMeasure: anyOf: - type: string - type: 'null' description: >- The unit-of-measure used for the `quantity` in this estimate line. Must be a valid unit within the item's available units of measure. example: Each overrideUnitOfMeasureSet: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- Specifies an alternative unit-of-measure set when updating this estimate 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. example: id: 80000001-1234567890 fullName: Volume Units rate: anyOf: - type: string - type: 'null' description: >- The price per unit for this estimate 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. example: '10.00' ratePercent: anyOf: - type: string - type: 'null' description: >- The price of this estimate line expressed as a percentage. Typically used for discount or markup items. example: '10.5' class: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The estimate 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 estimate lines unless overridden here, at the transaction line level. example: id: 80000001-1234567890 fullName: Web Development amount: anyOf: - type: string - type: 'null' description: >- The monetary amount of this estimate line, represented as a decimal string. If both `quantity` and `rate` are specified but not `amount`, QuickBooks will calculate `amount` using the rate and any markup you supply. The calculation is `amount = (quantity * rate) * (1 + markupRate)` when `markupRate` is provided, or `amount = (quantity * rate) * (1 + markupRatePercent/100)` when `markupRatePercent` is provided. If `amount`, `rate`, and `quantity` are all unspecified, QuickBooks will calculate `amount` based on a `quantity` of `1` and the suggested `rate`. This field cannot be cleared. example: '1000.00' inventorySite: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The site location where inventory for the item associated with this estimate line is stored. example: id: 80000001-1234567890 fullName: Main Warehouse inventorySiteLocation: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The specific location (e.g., bin or shelf) within the inventory site where the item associated with this estimate line is stored. example: id: 80000001-1234567890 fullName: Aisle 3, Shelf B salesTaxCode: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The sales-tax code for this estimate 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. example: id: 80000001-1234567890 fullName: Non markupRate: anyOf: - type: string - type: 'null' description: >- The markup that will be passed on to the customer for this item on this estimate line. `amount = (quantity * rate) * (1 + markupRate)` example: '0.2' markupRatePercent: anyOf: - type: string - type: 'null' description: >- The markup, expressed as a percentage, that will be passed on to the customer for this item on this estimate line. `amount = (quantity * rate) * (1 + markupRatePercent/100)` example: '20.0' otherCustomField1: anyOf: - type: string - type: 'null' description: >- A built-in custom field for additional information specific to this estimate line. Unlike the user-defined fields in the `customFields` array, this is a standard QuickBooks field that exists for all estimate 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. example: Special handling required otherCustomField2: anyOf: - type: string - type: 'null' description: >- A second built-in custom field for additional information specific to this estimate line. Unlike the user-defined fields in the `customFields` array, this is a standard QuickBooks field that exists for all estimate 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. example: Always ship with a spare customFields: type: array items: $ref: '#/components/schemas/qbd_custom_field' description: >- The custom fields for the estimate line object, added as user-defined data extensions, not included in the standard QuickBooks object. required: - id - objectType - item - description - quantity - unitOfMeasure - overrideUnitOfMeasureSet - rate - ratePercent - class - amount - inventorySite - inventorySiteLocation - salesTaxCode - markupRate - markupRatePercent - otherCustomField1 - otherCustomField2 - customFields additionalProperties: false title: The Estimate Line object x-conductor-object-type: nested qbd_estimate_line_group: type: object properties: id: type: string description: >- The unique identifier assigned by QuickBooks to this estimate line group. This ID is unique across all transaction line types. example: 456DEF-1234567890 objectType: description: >- The type of object. This value is always `"qbd_estimate_line_group"`. example: qbd_estimate_line_group type: string const: qbd_estimate_line_group itemGroup: type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false description: >- The estimate line group's item group, representing a predefined set of items bundled because they are commonly purchased together or grouped for faster entry. example: id: 80000001-1234567890 fullName: Office Supplies Bundle description: anyOf: - type: string - type: 'null' description: A description of this estimate line group. example: Standard widget bulk package quantity: anyOf: - type: number - type: 'null' description: >- The quantity of the item group associated with this estimate line group. This field cannot be cleared. **NOTE**: Do not use this field if the associated item group is a discount item group. example: 5 unitOfMeasure: anyOf: - type: string - type: 'null' description: >- The unit-of-measure used for the `quantity` in this estimate line group. Must be a valid unit within the item's available units of measure. example: Each overrideUnitOfMeasureSet: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- Specifies an alternative unit-of-measure set when updating this estimate 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. example: id: 80000001-1234567890 fullName: Volume Units shouldPrintItemsInGroup: type: boolean description: >- Indicates whether the individual items in this estimate line group and their separate amounts appear on printed forms. example: true totalAmount: type: string description: >- The total monetary amount of this estimate line group, equivalent to the sum of the amounts in `lines`, represented as a decimal string. example: '1000.00' lines: type: array items: $ref: '#/components/schemas/qbd_estimate_line' description: >- The estimate line group's line items, each representing a single product or service quoted. customFields: type: array items: $ref: '#/components/schemas/qbd_custom_field' description: >- The custom fields for the estimate line group object, added as user-defined data extensions, not included in the standard QuickBooks object. required: - id - objectType - itemGroup - description - quantity - unitOfMeasure - overrideUnitOfMeasureSet - shouldPrintItemsInGroup - totalAmount - lines - customFields additionalProperties: false title: The Estimate Line Group object x-conductor-object-type: nested qbd_inventory_adjustment: type: object properties: id: type: string description: >- The unique identifier assigned by QuickBooks to this inventory adjustment. This ID is unique across all transaction types. example: 123ABC-1234567890 objectType: description: >- The type of object. This value is always `"qbd_inventory_adjustment"`. example: qbd_inventory_adjustment type: string const: qbd_inventory_adjustment createdAt: type: string description: >- The date and time when this inventory adjustment 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. example: 2025-01-01T12:34:56.000Z updatedAt: type: string description: >- The date and time when this inventory adjustment 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. example: 2025-02-01T12:34:56.000Z revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of this inventory adjustment 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. example: '1721172183' account: type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false description: >- The account to which this inventory adjustment is posted for tracking inventory value changes. example: id: 80000001-1234567890 fullName: Inventory Shrinkage inventorySite: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The site location where inventory for the item associated with this inventory adjustment is stored. example: id: 80000001-1234567890 fullName: Main Warehouse transactionDate: type: string format: date description: >- The date of this inventory adjustment, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-01' refNumber: anyOf: - type: string - type: 'null' description: >- The case-sensitive user-defined reference number for this inventory adjustment, 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. example: INVADJ-1234 customer: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The customer or customer-job associated with this inventory adjustment. example: id: 80000001-1234567890 fullName: Acme Corporation class: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The inventory adjustment'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 inventory adjustment's line items unless overridden at the line item level. example: id: 80000001-1234567890 fullName: Inventory Adjustment memo: anyOf: - type: string - type: 'null' description: A memo or note for this inventory adjustment. example: Adjusted quantity due to physical count discrepancy externalId: anyOf: - type: string description: >- 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: 12345678-abcd-1234-abcd-1234567890ab - type: 'null' lines: type: array items: $ref: '#/components/schemas/qbd_inventory_adjustment_line' description: >- The inventory adjustment's item lines, each representing the adjustment of an inventory item's quantity, value, serial number, or lot number. customFields: type: array items: $ref: '#/components/schemas/qbd_custom_field' description: >- The custom fields for the inventory adjustment object, added as user-defined data extensions, not included in the standard QuickBooks object. required: - id - objectType - createdAt - updatedAt - revisionNumber - account - inventorySite - transactionDate - refNumber - customer - class - memo - externalId - lines - customFields additionalProperties: false title: The Inventory Adjustment object x-conductor-object-type: transaction summary: >- An inventory adjustment records changes to inventory item quantities and values in QuickBooks Desktop, typically used to correct discrepancies between physical counts and system records, or to account for damage, theft, or other inventory changes that aren't related to purchases or sales. qbd_inventory_adjustment_line: type: object properties: id: type: string description: >- The unique identifier assigned by QuickBooks to this inventory adjustment line. This ID is unique across all transaction line types. example: 456DEF-1234567890 objectType: description: >- The type of object. This value is always `"qbd_inventory_adjustment_line"`. example: qbd_inventory_adjustment_line type: string const: qbd_inventory_adjustment_line item: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: The inventory item associated with this inventory adjustment line. example: id: 80000001-1234567890 fullName: Widget A serialNumber: anyOf: - type: string - type: 'null' description: >- The serial number of the item associated with this inventory adjustment line. This is used for tracking individual units of serialized inventory items. example: SN1234567890 serialNumberAction: anyOf: - type: string enum: - added - removed - type: 'null' description: >- Indicates whether this inventory adjustment line's serial number was added or removed from the inventory. example: added lotNumber: anyOf: - type: string - type: 'null' description: >- The lot number of the item associated with this inventory adjustment line. Used for tracking groups of inventory items that are purchased or manufactured together. example: LOT2023-001 expirationDate: anyOf: - type: string format: date - type: 'null' description: >- The expiration date for the serial number or lot number of the item associated with this inventory adjustment line, in ISO 8601 format (YYYY-MM-DD). This is particularly relevant for perishable or time-sensitive inventory items. Note that this field is only supported on QuickBooks Desktop 2023 or later. example: 2025-12-31T00:00:00.000Z inventorySiteLocation: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The specific location (e.g., bin or shelf) within the inventory site where the item associated with this inventory adjustment line is stored. example: id: 80000001-1234567890 fullName: Aisle 3, Shelf B quantityDifference: anyOf: - type: number - type: 'null' description: >- Either a positive or negative number that shows the change in quantity for the inventory item associated with this inventory adjustment line. A positive number increases the quantity, while a negative number decreases it. example: 5 valueDifference: anyOf: - type: number - type: 'null' description: >- Either a positive or negative number that shows the change in the total value of the entire stock of the inventory item associated with this inventory adjustment line. A positive number increases the value, while a negative number decreases it. example: 7 required: - id - objectType - item - serialNumber - serialNumberAction - lotNumber - expirationDate - inventorySiteLocation - quantityDifference - valueDifference additionalProperties: false title: The Inventory Adjustment Line object x-conductor-object-type: nested qbd_inventory_assembly_item: type: object properties: id: type: string description: >- The unique identifier assigned by QuickBooks to this inventory assembly item. This ID is unique across all inventory assembly items but not across different QuickBooks object types. example: 80000001-1234567890 objectType: description: >- The type of object. This value is always `"qbd_inventory_assembly_item"`. example: qbd_inventory_assembly_item type: string const: qbd_inventory_assembly_item createdAt: type: string description: >- The date and time when this inventory assembly item 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. example: 2025-01-01T12:34:56.000Z updatedAt: type: string description: >- The date and time when this inventory assembly item 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. example: 2025-02-01T12:34:56.000Z revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of this inventory assembly item 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. example: '1721172183' name: type: string description: >- The case-insensitive name of this inventory assembly item. Not guaranteed to be unique because it does not include the names of its hierarchical parent objects like `fullName` does. For example, two inventory assembly items could both have the `name` "Deluxe Kit", but they could have unique `fullName` values, such as "Assemblies:Deluxe Kit" and "Inventory:Deluxe Kit". example: Deluxe Kit fullName: type: string description: >- The case-insensitive fully-qualified unique name of this inventory assembly item, formed by combining the names of its hierarchical parent objects with its own `name`, separated by colons. For example, if an inventory assembly item is under "Assemblies" and has the `name` "Deluxe Kit", its `fullName` would be "Assemblies:Deluxe Kit". **NOTE**: Unlike `name`, `fullName` is guaranteed to be unique across all inventory assembly item objects. However, `fullName` can still be arbitrarily changed by the QuickBooks user when they modify the underlying `name` field. example: Assemblies:Deluxe Kit barcode: anyOf: - type: string - type: 'null' description: The inventory assembly item's barcode. example: '012345678905' isActive: type: boolean description: >- Indicates whether this inventory assembly item is active. Inactive objects are typically hidden from views and reports in QuickBooks. Defaults to `true`. example: true class: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The inventory assembly item'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. example: id: 80000001-1234567890 fullName: Finished Goods parent: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The parent inventory assembly item one level above this one in the hierarchy. For example, if this inventory assembly item has a `fullName` of "Assemblies:Deluxe Kit", its parent has a `fullName` of "Assemblies". If this inventory assembly item is at the top level, this field will be `null`. example: id: 80000001-1234567890 fullName: Assemblies sublevel: type: number description: >- The depth level of this inventory assembly item in the hierarchy. A top-level inventory assembly item has a `sublevel` of 0; each subsequent sublevel increases this number by 1. For example, an inventory assembly item with a `fullName` of "Assemblies:Deluxe Kit" would have a `sublevel` of 1. example: 1 sku: anyOf: - type: string - type: 'null' description: >- The inventory assembly item's stock keeping unit (SKU), which is sometimes the manufacturer's part number. example: MPN-123456 unitOfMeasureSet: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The unit-of-measure set associated with this inventory assembly item, which consists of a base unit and related units. example: id: 80000001-1234567890 fullName: Weight Units salesTaxCode: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The default sales-tax code for this inventory assembly item, determining whether it is taxable or non-taxable. This can be overridden at the transaction-line level. 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. example: id: 80000001-1234567890 fullName: Non salesDescription: anyOf: - type: string - type: 'null' description: >- The description of this inventory assembly item that appears on sales forms (e.g., invoices, sales receipts) when sold to customers. example: High-quality steel bolts suitable for construction salesPrice: anyOf: - type: string - type: 'null' description: >- The price at which this inventory assembly item is sold to customers, represented as a decimal string. example: '19.99' incomeAccount: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The income account used to track revenue from sales of this inventory assembly item. example: id: 80000001-1234567890 fullName: Income:Product Sales purchaseDescription: anyOf: - type: string - type: 'null' description: >- The description of this inventory assembly item that appears on purchase forms (e.g., checks, bills, item receipts) when it is ordered or bought from vendors. example: Bulk purchase of steel bolts for inventory purchaseCost: anyOf: - type: string - type: 'null' description: >- The cost at which this inventory assembly item is purchased from vendors, represented as a decimal string. example: '15.75' purchaseTaxCode: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The tax code applied to purchases of this inventory assembly item. Applicable in regions where purchase taxes are used, such as Canada or the UK. example: id: 80000001-1234567890 fullName: GST cogsAccount: type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false description: >- The Cost of Goods Sold (COGS) account for this inventory assembly item, tracking the original direct costs of producing goods sold. example: id: 80000001-1234567890 fullName: Expenses:COGS preferredVendor: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The preferred vendor from whom this inventory assembly item is typically purchased. example: id: 80000001-1234567890 fullName: Acme Supplies Ltd. assetAccount: type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false description: >- The asset account used to track the current value of this inventory assembly item in inventory. example: id: 80000001-1234567890 fullName: Assets:Inventory buildNotificationThreshold: anyOf: - type: number - type: 'null' description: >- The inventory assembly item's minimum quantity threshold that triggers a build notification in QuickBooks. When the sum of `quantityOnHand` (current inventory) and `quantityOnOrder` (pending purchase orders) drops below this threshold, QuickBooks will notify users that more units need to be built or assembled. This helps ensure adequate inventory levels for inventory assembly items. example: 10 maximumQuantityOnHand: anyOf: - type: number - type: 'null' description: >- The maximum quantity of this inventory assembly item desired in inventory. example: 200 quantityOnHand: anyOf: - type: number - type: 'null' description: >- The number of units of this inventory assembly item currently in inventory. `quantityOnHand` multiplied by `averageCost` equals `totalValue` for inventory item lists. To change the `quantityOnHand` for an inventory assembly item, you must use an inventory-adjustment instead of updating the inventory assembly item directly. example: 150 averageCost: anyOf: - type: string - type: 'null' description: >- The average cost per unit of this inventory assembly item, represented as a decimal string. example: '16.50' quantityOnPurchaseOrder: anyOf: - type: number - type: 'null' description: >- The number of units of this inventory assembly item that have been ordered from vendors (as recorded in purchase orders) but not yet received. example: 10 quantityOnSalesOrder: anyOf: - type: number - type: 'null' description: >- The number of units of this inventory assembly item that have been sold (as recorded in sales orders) but not yet fulfilled or delivered to customers. example: 10 externalId: anyOf: - type: string description: >- 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: 12345678-abcd-1234-abcd-1234567890ab - type: 'null' lines: type: array items: $ref: '#/components/schemas/qbd_inventory_assembly_item_line' description: The inventory assembly item's lines. customFields: type: array items: $ref: '#/components/schemas/qbd_custom_field' description: >- The custom fields for the inventory assembly item object, added as user-defined data extensions, not included in the standard QuickBooks object. required: - id - objectType - createdAt - updatedAt - revisionNumber - name - fullName - barcode - isActive - class - parent - sublevel - sku - unitOfMeasureSet - salesTaxCode - salesDescription - salesPrice - incomeAccount - purchaseDescription - purchaseCost - purchaseTaxCode - cogsAccount - preferredVendor - assetAccount - buildNotificationThreshold - maximumQuantityOnHand - quantityOnHand - averageCost - quantityOnPurchaseOrder - quantityOnSalesOrder - externalId - lines - customFields additionalProperties: false title: The Inventory Assembly Item object x-conductor-object-type: item summary: >- An inventory assembly item is an item that is assembled or manufactured from inventory items. The items and/or assemblies that make up the assembly are called components. qbd_inventory_assembly_item_line: type: object properties: inventoryItem: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The inventory item associated with this inventory assembly item line. example: id: 80000001-1234567890 fullName: Inventory Item quantity: anyOf: - type: number - type: 'null' description: >- The quantity of the item associated with this inventory assembly item line. This field cannot be cleared. **NOTE**: Do not use this field if the associated item is a discount item. example: 5 required: - inventoryItem - quantity additionalProperties: false title: The Inventory Assembly Item Line object x-conductor-object-type: nested qbd_inventory_item: type: object properties: id: type: string description: >- The unique identifier assigned by QuickBooks to this inventory item. This ID is unique across all inventory items but not across different QuickBooks object types. example: 80000001-1234567890 objectType: description: The type of object. This value is always `"qbd_inventory_item"`. example: qbd_inventory_item type: string const: qbd_inventory_item createdAt: type: string description: >- The date and time when this inventory item 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. example: 2025-01-01T12:34:56.000Z updatedAt: type: string description: >- The date and time when this inventory item 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. example: 2025-02-01T12:34:56.000Z revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of this inventory item 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. example: '1721172183' name: type: string description: >- The case-insensitive name of this inventory item. Not guaranteed to be unique because it does not include the names of its hierarchical parent objects like `fullName` does. For example, two inventory items could both have the `name` "Cabinet", but they could have unique `fullName` values, such as "Kitchen:Cabinet" and "Inventory:Cabinet". example: Cabinet fullName: type: string description: >- The case-insensitive fully-qualified unique name of this inventory item, formed by combining the names of its hierarchical parent objects with its own `name`, separated by colons. For example, if an inventory item is under "Kitchen" and has the `name` "Cabinet", its `fullName` would be "Kitchen:Cabinet". **NOTE**: Unlike `name`, `fullName` is guaranteed to be unique across all inventory item objects. However, `fullName` can still be arbitrarily changed by the QuickBooks user when they modify the underlying `name` field. example: Kitchen:Cabinet barcode: anyOf: - type: string - type: 'null' description: The inventory item's barcode. example: '012345678905' isActive: type: boolean description: >- Indicates whether this inventory item is active. Inactive objects are typically hidden from views and reports in QuickBooks. Defaults to `true`. example: true class: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The inventory item'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. example: id: 80000001-1234567890 fullName: Furniture parent: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The parent inventory item one level above this one in the hierarchy. For example, if this inventory item has a `fullName` of "Kitchen:Cabinet", its parent has a `fullName` of "Kitchen". If this inventory item is at the top level, this field will be `null`. example: id: 80000001-1234567890 fullName: Kitchen sublevel: type: number description: >- The depth level of this inventory item in the hierarchy. A top-level inventory item has a `sublevel` of 0; each subsequent sublevel increases this number by 1. For example, an inventory item with a `fullName` of "Kitchen:Cabinet" would have a `sublevel` of 1. example: 1 sku: anyOf: - type: string - type: 'null' description: >- The inventory item's stock keeping unit (SKU), which is sometimes the manufacturer's part number. example: MPN-123456 unitOfMeasureSet: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The unit-of-measure set associated with this inventory item, which consists of a base unit and related units. example: id: 80000001-1234567890 fullName: Weight Units salesTaxCode: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The default sales-tax code for this inventory item, determining whether it is taxable or non-taxable. This can be overridden at the transaction-line level. 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. example: id: 80000001-1234567890 fullName: Non salesDescription: anyOf: - type: string - type: 'null' description: >- The description of this inventory item that appears on sales forms (e.g., invoices, sales receipts) when sold to customers. example: High-quality steel bolts suitable for construction salesPrice: anyOf: - type: string - type: 'null' description: >- The price at which this inventory item is sold to customers, represented as a decimal string. example: '19.99' incomeAccount: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The income account used to track revenue from sales of this inventory item. example: id: 80000001-1234567890 fullName: Income:Product Sales purchaseDescription: anyOf: - type: string - type: 'null' description: >- The description of this inventory item that appears on purchase forms (e.g., checks, bills, item receipts) when it is ordered or bought from vendors. example: Bulk purchase of steel bolts for inventory purchaseCost: anyOf: - type: string - type: 'null' description: >- The cost at which this inventory item is purchased from vendors, represented as a decimal string. example: '15.75' purchaseTaxCode: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The tax code applied to purchases of this inventory item. Applicable in regions where purchase taxes are used, such as Canada or the UK. example: id: 80000001-1234567890 fullName: GST cogsAccount: type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false description: >- The Cost of Goods Sold (COGS) account for this inventory item, tracking the original direct costs of producing goods sold. example: id: 80000001-1234567890 fullName: Expenses:COGS preferredVendor: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The preferred vendor from whom this inventory item is typically purchased. example: id: 80000001-1234567890 fullName: Acme Supplies Ltd. assetAccount: type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false description: >- The asset account used to track the current value of this inventory item in inventory. example: id: 80000001-1234567890 fullName: Assets:Inventory reorderPoint: anyOf: - type: number - type: 'null' description: >- The minimum quantity of this inventory item at which QuickBooks prompts for reordering. example: 50 maximumQuantityOnHand: anyOf: - type: number - type: 'null' description: The maximum quantity of this inventory item desired in inventory. example: 200 quantityOnHand: anyOf: - type: number - type: 'null' description: >- The number of units of this inventory item currently in inventory. `quantityOnHand` multiplied by `averageCost` equals `totalValue` for inventory item lists. To change the `quantityOnHand` for an inventory item, you must use an inventory-adjustment instead of updating the inventory item directly. example: 150 averageCost: anyOf: - type: string - type: 'null' description: >- The average cost per unit of this inventory item, represented as a decimal string. example: '16.50' quantityOnPurchaseOrder: anyOf: - type: number - type: 'null' description: >- The number of units of this inventory item that have been ordered from vendors (as recorded in purchase orders) but not yet received. example: 10 quantityOnSalesOrder: anyOf: - type: number - type: 'null' description: >- The number of units of this inventory item that have been sold (as recorded in sales orders) but not yet fulfilled or delivered to customers. example: 10 externalId: anyOf: - type: string description: >- 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: 12345678-abcd-1234-abcd-1234567890ab - type: 'null' customFields: type: array items: $ref: '#/components/schemas/qbd_custom_field' description: >- The custom fields for the inventory item object, added as user-defined data extensions, not included in the standard QuickBooks object. required: - id - objectType - createdAt - updatedAt - revisionNumber - name - fullName - barcode - isActive - class - parent - sublevel - sku - unitOfMeasureSet - salesTaxCode - salesDescription - salesPrice - incomeAccount - purchaseDescription - purchaseCost - purchaseTaxCode - cogsAccount - preferredVendor - assetAccount - reorderPoint - maximumQuantityOnHand - quantityOnHand - averageCost - quantityOnPurchaseOrder - quantityOnSalesOrder - externalId - customFields additionalProperties: false title: The Inventory Item object x-conductor-object-type: item summary: >- An inventory item is any merchandise or part that a business purchases, tracks as inventory, and then resells. qbd_inventory_site: type: object properties: id: type: string description: >- The unique identifier assigned by QuickBooks to this inventory site. This ID is unique across all inventory sites but not across different QuickBooks object types. example: 80000001-1234567890 objectType: description: The type of object. This value is always `"qbd_inventory_site"`. example: qbd_inventory_site type: string const: qbd_inventory_site createdAt: type: string description: >- The date and time when this inventory site 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. example: 2025-01-01T12:34:56.000Z updatedAt: type: string description: >- The date and time when this inventory site 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. example: 2025-02-01T12:34:56.000Z revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of this inventory site 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. example: '1721172183' name: type: string description: >- The case-insensitive unique name of this inventory site, unique across all inventory sites. **NOTE**: Inventory sites do not have a `fullName` field because they are not hierarchical objects, which is why `name` is unique for them but not for objects that have parents. example: Stockroom isActive: type: boolean description: >- Indicates whether this inventory site is active. Inactive objects are typically hidden from views and reports in QuickBooks. Defaults to `true`. example: true parent: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: The parent inventory site one level above this one in the hierarchy. example: id: 80000001-1234567890 fullName: Romulus Warehouse:Stockroom isDefault: anyOf: - type: boolean - type: 'null' description: >- Indicates whether this inventory site is the default site used when no specific site is provided during the creation of other objects. example: true description: anyOf: - type: string - type: 'null' description: A description of this inventory site. example: Main Stockroom for Electronics contact: anyOf: - type: string - type: 'null' description: The name of the primary contact person for this inventory site. example: Jane Smith phone: anyOf: - type: string - type: 'null' description: The inventory site's primary telephone number. example: +1-555-123-4567 fax: anyOf: - type: string - type: 'null' description: The inventory site's fax number. example: +1-555-555-1212 email: anyOf: - type: string - type: 'null' description: The inventory site's email address. example: inventory-site@example.com address: anyOf: - $ref: '#/components/schemas/qbd_site_address' - type: 'null' description: The inventory site's address. required: - id - objectType - createdAt - updatedAt - revisionNumber - name - isActive - parent - isDefault - description - contact - phone - fax - email - address additionalProperties: false title: The Inventory Site object x-conductor-object-type: other summary: >- An inventory site is a location where inventory is stored. For example, a company might have a warehouse, a stockroom, and a showroom, each of which is an inventory site. NOTE: Inventory sites require QuickBooks Enterprise with an Advanced Inventory subscription. qbd_site_address: type: object properties: line1: anyOf: - type: string - type: 'null' description: >- The first line of the site address (e.g., street, PO Box, or company name). example: Conductor Labs Inc. line2: anyOf: - type: string - type: 'null' description: >- The second line of the site address, if needed (e.g., apartment, suite, unit, or building). example: 540 Market St. line3: anyOf: - type: string - type: 'null' description: The third line of the site address, if needed. example: Suite 100 line4: anyOf: - type: string - type: 'null' description: The fourth line of the site address, if needed. example: '' line5: anyOf: - type: string - type: 'null' description: The fifth line of the site address, if needed. example: '' city: anyOf: - type: string - type: 'null' description: >- The city, district, suburb, town, or village name of the site address. example: San Francisco state: anyOf: - type: string - type: 'null' description: The state, county, province, or region name of the site address. example: CA postalCode: anyOf: - type: string - type: 'null' description: The postal code or ZIP code of the site address. example: '94110' country: anyOf: - type: string - type: 'null' description: The country name of the site address. example: United States required: - line1 - line2 - line3 - line4 - line5 - city - state - postalCode - country additionalProperties: false title: The Site Address object x-conductor-object-type: nested qbd_invoice: type: object properties: id: type: string description: >- The unique identifier assigned by QuickBooks to this invoice. This ID is unique across all transaction types. example: 123ABC-1234567890 objectType: description: The type of object. This value is always `"qbd_invoice"`. example: qbd_invoice type: string const: qbd_invoice createdAt: type: string description: >- The date and time when this invoice 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. example: 2025-01-01T12:34:56.000Z updatedAt: type: string description: >- The date and time when this invoice 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. example: 2025-02-01T12:34:56.000Z revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of this invoice 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. example: '1721172183' customer: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: The customer or customer-job associated with this invoice. example: id: 80000001-1234567890 fullName: Acme Corporation class: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The invoice'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 invoice's line items unless overridden at the line item level. example: id: 80000001-1234567890 fullName: Construction receivablesAccount: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The Accounts-Receivable (A/R) account to which this invoice is assigned, used to track the amount owed. If omitted, QuickBooks Desktop uses the default A/R account configured in the company file. **IMPORTANT**: If this invoice is linked to other transactions, this A/R account must match the `receivablesAccount` used in all linked transactions. example: id: 80000001-1234567890 fullName: Accounts-Receivable documentTemplate: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The predefined template in QuickBooks that determines the layout and formatting for this invoice when printed or displayed. example: id: 80000001-1234567890 fullName: Invoice Template transactionDate: type: string format: date description: The date of this invoice, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-01' refNumber: anyOf: - type: string - type: 'null' description: >- The case-sensitive user-defined reference number for this invoice, 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. example: INV-1234 billingAddress: anyOf: - $ref: '#/components/schemas/qbd_address' - type: 'null' description: The invoice's billing address. shippingAddress: anyOf: - $ref: '#/components/schemas/qbd_address' - type: 'null' description: The invoice's shipping address. isPending: anyOf: - type: boolean - type: 'null' description: >- Indicates whether this invoice has not been completed or is in a draft version. example: false isFinanceCharge: anyOf: - type: boolean - type: 'null' description: >- Whether this invoice includes a finance charge. This field is immutable and can only be set during invoice creation. example: true purchaseOrderNumber: anyOf: - type: string - type: 'null' description: >- The customer's Purchase Order (PO) number associated with this invoice. This field is often used to cross-reference the invoice with the customer's purchasing system. example: PO-1234 terms: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The invoice's payment terms, defining when payment is due and any applicable discounts. example: id: 80000001-1234567890 fullName: Net 30 dueDate: anyOf: - type: string format: date - type: 'null' description: >- The date by which this invoice must be paid, in ISO 8601 format (YYYY-MM-DD). example: 2024-10-31T00:00:00.000Z salesRepresentative: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The invoice's sales representative. Sales representatives can be employees, vendors, or other names in QuickBooks. example: id: 80000001-1234567890 fullName: Jane Doe shipmentOrigin: anyOf: - type: string - type: 'null' description: >- The origin location from where the product associated with this invoice 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. example: San Francisco, CA shippingDate: anyOf: - type: string format: date - type: 'null' description: >- The date when the products or services for this invoice were shipped or are expected to be shipped, in ISO 8601 format (YYYY-MM-DD). example: 2024-10-01T00:00:00.000Z shippingMethod: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The shipping method used for this invoice, such as standard mail or overnight delivery. example: id: 80000001-1234567890 fullName: FedEx Ground subtotal: type: string description: >- The subtotal of this invoice, which is the sum of all invoice lines before taxes and payments are applied, represented as a decimal string. example: '1000.00' salesTaxItem: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The sales-tax item used to calculate the actual tax amount for this invoice's transactions by applying a specific tax rate collected for a single tax agency. Unlike `salesTaxCode`, which only indicates general taxability, this field drives the actual tax calculation and reporting. For invoices, while using this field to specify a single tax item/group that applies uniformly is recommended, complex tax scenarios may require alternative approaches. In such cases, you can set this field to a 0% tax item (conventionally named "Tax Calculated On Invoice") and handle tax calculations through line items instead. When using line items for taxes, note that only individual tax items (not tax groups) can be used, subtotals can help apply a tax to multiple items but only the first tax line after a subtotal is calculated automatically (subsequent tax lines require manual amounts), and the rate column will always display the actual tax amount rather than the rate percentage. example: id: 80000001-1234567890 fullName: State Sales Tax salesTaxPercentage: anyOf: - type: string - type: 'null' description: >- The sales tax percentage applied to this invoice, represented as a decimal string. example: '0.07' salesTaxTotal: anyOf: - type: string - type: 'null' description: >- The total amount of sales tax charged for this invoice, represented as a decimal string. example: '10.00' appliedAmount: anyOf: - type: string - type: 'null' description: >- The total amount applied to this invoice, represented as a decimal string. example: '100.00' balanceRemaining: anyOf: - type: string - type: 'null' description: >- The outstanding balance of this invoice after applying any credits or payments. Calculated as `subtotal` + `salesTaxTotal` - `appliedAmount`. Represented as a decimal string. example: '100.00' currency: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The invoice's currency. For built-in currencies, the name and code are standard ISO 4217 international values. For user-defined currencies, all values are editable. example: id: 80000001-1234567890 fullName: USD exchangeRate: anyOf: - type: number - type: 'null' description: >- The market exchange rate between this invoice'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: 1.2345 balanceRemainingInHomeCurrency: anyOf: - type: string - type: 'null' description: >- The outstanding balance of this invoice converted to the home currency of the QuickBooks company file. Represented as a decimal string. example: '100.00' memo: anyOf: - type: string - type: 'null' description: >- A memo or note for this invoice that appears in reports, but not on the invoice. Use `customerMessage` to add a note to this invoice. example: Customer requested rush delivery isPaid: anyOf: - type: boolean - type: 'null' description: >- Indicates whether this invoice has been paid in full. When `true`, `openAmount` will be 0. example: false customerMessage: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: The message to display to the customer on the invoice. example: id: 80000001-1234567890 fullName: Thank you for your business! isQueuedForPrint: anyOf: - type: boolean description: >- Indicates whether this invoice is included in the queue of documents for QuickBooks to print. example: true - type: 'null' isQueuedForEmail: anyOf: - type: boolean - type: 'null' description: >- Indicates whether this invoice is included in the queue of documents for QuickBooks to email to the customer. example: true salesTaxCode: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The sales-tax code for this invoice, determining whether it is taxable or non-taxable. This can be overridden at the transaction-line level. 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. example: id: 80000001-1234567890 fullName: Non suggestedDiscountAmount: anyOf: - type: string - type: 'null' description: >- The suggested discount amount for this invoice, represented as a decimal string. example: '10.00' suggestedDiscountDate: anyOf: - type: string format: date - type: 'null' description: >- The date when the `suggestedDiscountAmount` for this invoice would apply, in ISO 8601 format (YYYY-MM-DD). example: 2024-01-01T00:00:00.000Z otherCustomField: anyOf: - type: string - type: 'null' description: >- A built-in custom field for additional information specific to this invoice. Unlike the user-defined fields in the `customFields` array, this is a standard QuickBooks field that exists for all invoices for convenience. Developers often use this field for tracking information that doesn't fit into other standard QuickBooks fields. Unlike `otherCustomField1` and `otherCustomField2`, which are line item fields, this exists at the transaction level. Hidden by default in the QuickBooks UI. example: Special handling required externalId: anyOf: - type: string description: >- 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: 12345678-abcd-1234-abcd-1234567890ab - type: 'null' linkedTransactions: type: array items: $ref: '#/components/schemas/qbd_linked_transaction' description: >- The invoice'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 invoices to receive this field because it is not returned by default. lines: type: array items: $ref: '#/components/schemas/qbd_invoice_line' description: >- The invoice's line items, each representing a single product or service sold. lineGroups: type: array items: $ref: '#/components/schemas/qbd_invoice_line_group' description: >- The invoice's line item groups, each representing a predefined set of related items. customFields: type: array items: $ref: '#/components/schemas/qbd_custom_field' description: >- The custom fields for the invoice object, added as user-defined data extensions, not included in the standard QuickBooks object. required: - id - objectType - createdAt - updatedAt - revisionNumber - customer - class - receivablesAccount - documentTemplate - transactionDate - refNumber - billingAddress - shippingAddress - isPending - isFinanceCharge - purchaseOrderNumber - terms - dueDate - salesRepresentative - shipmentOrigin - shippingDate - shippingMethod - subtotal - salesTaxItem - salesTaxPercentage - salesTaxTotal - appliedAmount - balanceRemaining - currency - exchangeRate - balanceRemainingInHomeCurrency - memo - isPaid - customerMessage - isQueuedForPrint - isQueuedForEmail - salesTaxCode - suggestedDiscountAmount - suggestedDiscountDate - otherCustomField - externalId - linkedTransactions - lines - lineGroups - customFields additionalProperties: false title: The Invoice object x-conductor-object-type: transaction summary: >- An invoice is a commercial document issued to customers that itemizes and records a transaction between buyer and seller. It lists the products or services provided, their quantities, prices, payment terms, and the total amount due. In QuickBooks, invoices are used to track accounts receivable and record sales transactions where payment was not made in full at the time of purchase. qbd_invoice_line: type: object properties: id: type: string description: >- The unique identifier assigned by QuickBooks to this invoice line. This ID is unique across all transaction line types. example: 456DEF-1234567890 objectType: description: The type of object. This value is always `"qbd_invoice_line"`. example: qbd_invoice_line type: string const: qbd_invoice_line item: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The item associated with this invoice 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. example: id: 80000001-1234567890 fullName: Widget A description: anyOf: - type: string - type: 'null' description: A description of this invoice line. example: High-quality widget with custom engraving quantity: anyOf: - type: number - type: 'null' description: >- The quantity of the item associated with this invoice line. This field cannot be cleared. **NOTE**: Do not use this field if the associated item is a discount item. example: 5 unitOfMeasure: anyOf: - type: string - type: 'null' description: >- The unit-of-measure used for the `quantity` in this invoice line. Must be a valid unit within the item's available units of measure. example: Each overrideUnitOfMeasureSet: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- Specifies an alternative unit-of-measure set when updating this invoice 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. example: id: 80000001-1234567890 fullName: Volume Units rate: anyOf: - type: string - type: 'null' description: >- The price per unit for this invoice 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. example: '10.00' ratePercent: anyOf: - type: string - type: 'null' description: >- The price of this invoice line expressed as a percentage. Typically used for discount or markup items. example: '10.5' class: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The invoice 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 invoice lines unless overridden here, at the transaction line level. example: id: 80000001-1234567890 fullName: Installation:Residential amount: anyOf: - type: string - type: 'null' description: >- The monetary amount of this invoice 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. example: '1000.00' inventorySite: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The site location where inventory for the item associated with this invoice line is stored. example: id: 80000001-1234567890 fullName: Main Warehouse inventorySiteLocation: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The specific location (e.g., bin or shelf) within the inventory site where the item associated with this invoice line is stored. example: id: 80000001-1234567890 fullName: Aisle 3, Shelf B serialNumber: anyOf: - type: string - type: 'null' description: >- The serial number of the item associated with this invoice line. This is used for tracking individual units of serialized inventory items. example: SN1234567890 lotNumber: anyOf: - type: string - type: 'null' description: >- The lot number of the item associated with this invoice line. Used for tracking groups of inventory items that are purchased or manufactured together. example: LOT2023-001 expirationDate: anyOf: - type: string format: date - type: 'null' description: >- The expiration date for the serial number or lot number of the item associated with this invoice line, in ISO 8601 format (YYYY-MM-DD). This is particularly relevant for perishable or time-sensitive inventory items. Note that this field is only supported on QuickBooks Desktop 2023 or later. example: 2025-12-31T00:00:00.000Z serviceDate: anyOf: - type: string format: date - type: 'null' description: >- The date on which the service for this invoice line was or will be performed, in ISO 8601 format (YYYY-MM-DD). This is particularly relevant for service items. example: 2024-03-15T00:00:00.000Z salesTaxCode: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The sales-tax code for this invoice 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. example: id: 80000001-1234567890 fullName: Non otherCustomField1: anyOf: - type: string - type: 'null' description: >- A built-in custom field for additional information specific to this invoice line. Unlike the user-defined fields in the `customFields` array, this is a standard QuickBooks field that exists for all invoice 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. example: Special handling required otherCustomField2: anyOf: - type: string - type: 'null' description: >- A second built-in custom field for additional information specific to this invoice line. Unlike the user-defined fields in the `customFields` array, this is a standard QuickBooks field that exists for all invoice 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. example: Always ship with a spare customFields: type: array items: $ref: '#/components/schemas/qbd_custom_field' description: >- The custom fields for the invoice line object, added as user-defined data extensions, not included in the standard QuickBooks object. required: - id - objectType - item - description - quantity - unitOfMeasure - overrideUnitOfMeasureSet - rate - ratePercent - class - amount - inventorySite - inventorySiteLocation - serialNumber - lotNumber - expirationDate - serviceDate - salesTaxCode - otherCustomField1 - otherCustomField2 - customFields additionalProperties: false title: The Invoice Line object x-conductor-object-type: nested qbd_invoice_line_group: type: object properties: id: type: string description: >- The unique identifier assigned by QuickBooks to this invoice line group. This ID is unique across all transaction line types. example: 456DEF-1234567890 objectType: description: The type of object. This value is always `"qbd_invoice_line_group"`. example: qbd_invoice_line_group type: string const: qbd_invoice_line_group itemGroup: type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false description: >- The invoice line group's item group, representing a predefined set of items bundled because they are commonly purchased together or grouped for faster entry. example: id: 80000001-1234567890 fullName: Office Supplies Bundle description: anyOf: - type: string - type: 'null' description: A description of this invoice line group. example: Standard widget bulk package quantity: anyOf: - type: number - type: 'null' description: >- The quantity of the item group associated with this invoice line group. This field cannot be cleared. **NOTE**: Do not use this field if the associated item group is a discount item group. example: 5 unitOfMeasure: anyOf: - type: string - type: 'null' description: >- The unit-of-measure used for the `quantity` in this invoice line group. Must be a valid unit within the item's available units of measure. example: Each overrideUnitOfMeasureSet: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- Specifies an alternative unit-of-measure set when updating this invoice 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. example: id: 80000001-1234567890 fullName: Volume Units shouldPrintItemsInGroup: type: boolean description: >- Indicates whether the individual items in this invoice line group and their separate amounts appear on printed forms. example: true totalAmount: type: string description: >- The total monetary amount of this invoice line group, equivalent to the sum of the amounts in `lines`, represented as a decimal string. example: '1000.00' serviceDate: anyOf: - type: string format: date - type: 'null' description: >- The date on which the service for this invoice line group was or will be performed, in ISO 8601 format (YYYY-MM-DD). This is particularly relevant for service items. example: 2024-03-15T00:00:00.000Z lines: type: array items: $ref: '#/components/schemas/qbd_invoice_line' description: >- The invoice line group's line items, each representing a single product or service sold. customFields: type: array items: $ref: '#/components/schemas/qbd_custom_field' description: >- The custom fields for the invoice line group object, added as user-defined data extensions, not included in the standard QuickBooks object. required: - id - objectType - itemGroup - description - quantity - unitOfMeasure - overrideUnitOfMeasureSet - shouldPrintItemsInGroup - totalAmount - serviceDate - lines - customFields additionalProperties: false title: The Invoice Line Group object x-conductor-object-type: nested qbd_item_group: type: object properties: id: type: string description: >- The unique identifier assigned by QuickBooks to this item group. This ID is unique across all item groups but not across different QuickBooks object types. example: 80000001-1234567890 objectType: description: The type of object. This value is always `"qbd_item_group"`. example: qbd_item_group type: string const: qbd_item_group createdAt: type: string description: >- The date and time when this item group 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. example: 2025-01-01T12:34:56.000Z updatedAt: type: string description: >- The date and time when this item group 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. example: 2025-02-01T12:34:56.000Z revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of this item group 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. example: '1721172183' name: type: string description: >- The case-insensitive unique name of this item group, unique across all item groups. **NOTE**: Item groups do not have a `fullName` field because they are not hierarchical objects, which is why `name` is unique for them but not for objects that have parents. example: Office Supplies Bundle barcode: anyOf: - type: string - type: 'null' description: The item group's barcode. example: '012345678905' isActive: type: boolean description: >- Indicates whether this item group is active. Inactive objects are typically hidden from views and reports in QuickBooks. Defaults to `true`. example: true description: anyOf: - type: string - type: 'null' description: >- The item group's description that will appear on sales forms that include this item. example: >- Complete office starter kit with essential supplies for new employees. unitOfMeasureSet: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The unit-of-measure set associated with this item group, which consists of a base unit and related units. example: id: 80000001-1234567890 fullName: Weight Units shouldPrintItemsInGroup: type: boolean description: >- Indicates whether the individual items in this item group and their separate amounts appear on printed forms. example: true specialItemType: anyOf: - type: string enum: - finance_charge - reimbursable_expense_group - reimbursable_expense_subtotal - type: 'null' description: The type of special item for this item group. example: finance_charge externalId: anyOf: - type: string description: >- 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: 12345678-abcd-1234-abcd-1234567890ab - type: 'null' lines: type: array items: $ref: '#/components/schemas/qbd_item_group_line' description: The item lines in this item group. customFields: type: array items: $ref: '#/components/schemas/qbd_custom_field' description: >- The custom fields for the item group object, added as user-defined data extensions, not included in the standard QuickBooks object. required: - id - objectType - createdAt - updatedAt - revisionNumber - name - barcode - isActive - description - unitOfMeasureSet - shouldPrintItemsInGroup - specialItemType - externalId - lines - customFields additionalProperties: false title: The Item Group object x-conductor-object-type: item summary: >- An item group represents a predefined set of items bundled together because they are commonly purchased together or grouped for faster entry in QuickBooks Desktop, while allowing you to see individual items on forms and reports. qbd_item_group_line: type: object properties: item: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The item associated with this item group 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. example: id: 80000001-1234567890 fullName: Widget A quantity: anyOf: - type: number - type: 'null' description: >- The quantity of the item group associated with this item group line. This field cannot be cleared. **NOTE**: Do not use this field if the associated item group is a discount item group. example: 5 unitOfMeasure: anyOf: - type: string - type: 'null' description: >- The unit-of-measure used for the `quantity` in this item group line. Must be a valid unit within the item's available units of measure. example: Each required: - item - quantity - unitOfMeasure additionalProperties: false title: The Item Group Line object x-conductor-object-type: nested qbd_item_receipt: type: object properties: id: type: string description: >- The unique identifier assigned by QuickBooks to this item receipt. This ID is unique across all transaction types. example: 123ABC-1234567890 objectType: description: The type of object. This value is always `"qbd_item_receipt"`. example: qbd_item_receipt type: string const: qbd_item_receipt createdAt: type: string description: >- The date and time when this item receipt 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. example: 2025-01-01T12:34:56.000Z updatedAt: type: string description: >- The date and time when this item receipt 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. example: 2025-02-01T12:34:56.000Z revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of this item receipt 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. example: '1721172183' vendor: type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false description: >- The vendor who sent this item receipt for goods or services purchased. example: id: 80000001-1234567890 fullName: Acme Supplies Ltd. payablesAccount: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The Accounts-Payable (A/P) account to which this item receipt is assigned, used for accounts-payable tracking. **IMPORTANT**: If this item receipt is linked to other transactions, this A/P account must match the `payablesAccount` used in those other transactions. example: id: 80000001-1234567890 fullName: Accounts-Payable liabilityAccount: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The liability account used to track the amount owed for this item receipt. example: id: 80000001-1234567890 fullName: Liabilities:Accounts-Payable transactionDate: type: string format: date description: The date of this item receipt, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-01' totalAmount: type: string description: >- The total monetary amount of this item receipt, equivalent to the sum of the amounts in `expenseLines`, `itemLines`, and `itemGroupLines`, represented as a decimal string. example: '1000.00' currency: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The item receipt's currency. For built-in currencies, the name and code are standard ISO 4217 international values. For user-defined currencies, all values are editable. example: id: 80000001-1234567890 fullName: USD exchangeRate: anyOf: - type: number - type: 'null' description: >- The market exchange rate between this item receipt'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: 1.2345 totalAmountInHomeCurrency: anyOf: - type: string - type: 'null' description: >- The total monetary amount of this item receipt converted to the home currency of the QuickBooks company file. Represented as a decimal string. example: '1234.56' refNumber: anyOf: - type: string - type: 'null' description: >- The case-sensitive user-defined reference number for this item receipt, 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. example: RECEIPT-1234 memo: anyOf: - type: string - type: 'null' description: A memo or note for this item receipt. example: Received 100 units of Product X from Vendor Y salesTaxCode: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The sales-tax code for this item receipt, 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 item receipt'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. example: id: 80000001-1234567890 fullName: Non externalId: anyOf: - type: string description: >- 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: 12345678-abcd-1234-abcd-1234567890ab - type: 'null' linkedTransactions: type: array items: $ref: '#/components/schemas/qbd_linked_transaction' description: >- The item receipt'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 item receipts to receive this field because it is not returned by default. expenseLines: type: array items: $ref: '#/components/schemas/qbd_expense_line' description: >- The item receipt's expense lines, each representing one line in this expense. itemLines: type: array items: $ref: '#/components/schemas/qbd_item_line' description: >- The item receipt's item lines, each representing the purchase of a specific item or service. itemGroupLines: type: array items: $ref: '#/components/schemas/qbd_item_group_line_item' description: >- The item receipt's item group lines, each representing a predefined set of items bundled together because they are commonly purchased together or grouped for faster entry. customFields: type: array items: $ref: '#/components/schemas/qbd_custom_field' description: >- The custom fields for the item receipt object, added as user-defined data extensions, not included in the standard QuickBooks object. required: - id - objectType - createdAt - updatedAt - revisionNumber - vendor - payablesAccount - liabilityAccount - transactionDate - totalAmount - currency - exchangeRate - totalAmountInHomeCurrency - refNumber - memo - salesTaxCode - externalId - linkedTransactions - expenseLines - itemLines - itemGroupLines - customFields additionalProperties: false title: The Item Receipt object x-conductor-object-type: transaction summary: >- An item receipt records the physical receipt of inventory items from a vendor. It can be linked to a purchase order to automatically update inventory quantities and close out the purchase order. When linked, line items are automatically pulled from the purchase order, eliminating the need to recreate them manually. This linking can only be done during item receipt creation, not during modification. qbd_item_site: type: object properties: id: type: string description: >- The unique identifier assigned by QuickBooks to this item site. This ID is unique across all item sites but not across different QuickBooks object types. example: 80000001-1234567890 objectType: description: The type of object. This value is always `"qbd_item_site"`. example: qbd_item_site type: string const: qbd_item_site createdAt: type: string description: >- The date and time when this item site 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. example: 2025-01-01T12:34:56.000Z updatedAt: type: string description: >- The date and time when this item site 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. example: 2025-02-01T12:34:56.000Z revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of this item site 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. example: '1721172183' inventoryAssemblyItem: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The inventory assembly item associated with this item site. An inventory assembly item is assembled or manufactured from other inventory items, and the items and/or assemblies that make up the assembly are called components. example: id: 80000001-1234567890 fullName: Inventory Assembly Item inventoryItem: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: The inventory item associated with this item site. example: id: 80000001-1234567890 fullName: Inventory Item inventorySite: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The site location where inventory for the item associated with this item site is stored. example: id: 80000001-1234567890 fullName: Main Warehouse inventorySiteLocation: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The specific location (e.g., bin or shelf) within the inventory site where the item associated with this item site is stored. example: id: 80000001-1234567890 fullName: Aisle 3, Shelf B reorderLevel: anyOf: - type: number - type: 'null' description: >- The inventory level at which QuickBooks prompts you to reorder this item site. example: 25 quantityOnHand: anyOf: - type: number - type: 'null' description: The number of units of this item site currently in inventory. example: 150 quantityOnPurchaseOrders: anyOf: - type: number - type: 'null' description: >- The number of units of this item site that are currently listed on outstanding purchase orders and have not yet been received. example: 40 quantityOnSalesOrders: anyOf: - type: number - type: 'null' description: >- The number of units of this item site that are currently listed on outstanding sales orders and have not yet been fulfilled or delivered to customers. example: 30 quantityToBeBuiltByPendingBuildTransactions: anyOf: - type: number - type: 'null' description: >- The number of units of this item site that are scheduled to be built on pending build transactions. example: 15 quantityRequiredByPendingBuildTransactions: anyOf: - type: number - type: 'null' description: >- The number of units of this item site required by pending build transactions. example: 12 quantityOnPendingTransfers: anyOf: - type: number - type: 'null' description: >- The number of units of this item site that are currently on pending inventory transfer transactions. example: 8 assemblyBuildPoint: anyOf: - type: number - type: 'null' description: >- The inventory level of this item site at which a new build assembly should begin. When the combined `quantityOnHand` and `quantityOnPurchaseOrders` drops below this point, QuickBooks flags the need to build additional units. example: 20 required: - id - objectType - createdAt - updatedAt - revisionNumber - inventoryAssemblyItem - inventoryItem - inventorySite - inventorySiteLocation - reorderLevel - quantityOnHand - quantityOnPurchaseOrders - quantityOnSalesOrders - quantityToBeBuiltByPendingBuildTransactions - quantityRequiredByPendingBuildTransactions - quantityOnPendingTransfers - assemblyBuildPoint additionalProperties: false title: The Item Site object x-conductor-object-type: item summary: >- An item site represents a location where inventory items are stored. This is useful for tracking inventory at different locations, such as a warehouse or a store. qbd_journal_entry: type: object properties: id: type: string description: >- The unique identifier assigned by QuickBooks to this journal entry. This ID is unique across all transaction types. example: 123ABC-1234567890 objectType: description: The type of object. This value is always `"qbd_journal_entry"`. example: qbd_journal_entry type: string const: qbd_journal_entry createdAt: type: string description: >- The date and time when this journal entry 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. example: 2025-01-01T12:34:56.000Z updatedAt: type: string description: >- The date and time when this journal entry 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. example: 2025-02-01T12:34:56.000Z revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of this journal entry 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. example: '1721172183' transactionDate: type: string format: date description: The date of this journal entry, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-01' refNumber: anyOf: - type: string - type: 'null' description: >- The case-sensitive user-defined reference number for this journal entry, 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. example: JE-1234 isAdjustment: anyOf: - type: boolean - type: 'null' description: >- Indicates whether this journal entry is an adjustment entry. When `true`, QuickBooks retains the original entry information to maintain an audit trail of the adjustments. example: false isHomeCurrencyAdjustment: anyOf: - type: boolean - type: 'null' description: >- Indicates whether this journal entry is an adjustment made in the company's home currency for a transaction that was originally recorded in a foreign currency. example: false areAmountsEnteredInHomeCurrency: anyOf: - type: boolean - type: 'null' description: >- Indicates whether the amounts in this journal entry were entered in the company's home currency rather than a foreign currency. When `true`, amounts are in the home currency regardless of the `currency` field. example: false currency: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The journal entry's currency. For built-in currencies, the name and code are standard ISO 4217 international values. For user-defined currencies, all values are editable. example: id: 80000001-1234567890 fullName: USD exchangeRate: anyOf: - type: number - type: 'null' description: >- The market exchange rate between this journal entry'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: 1.2345 externalId: anyOf: - type: string description: >- 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: 12345678-abcd-1234-abcd-1234567890ab - type: 'null' debitLines: type: array items: $ref: '#/components/schemas/qbd_journal_debit_line' description: The journal entry's debit lines. creditLines: type: array items: $ref: '#/components/schemas/qbd_journal_credit_line' description: The journal entry's credit lines. customFields: type: array items: $ref: '#/components/schemas/qbd_custom_field' description: >- The custom fields for the journal entry object, added as user-defined data extensions, not included in the standard QuickBooks object. required: - id - objectType - createdAt - updatedAt - revisionNumber - transactionDate - refNumber - isAdjustment - isHomeCurrencyAdjustment - areAmountsEnteredInHomeCurrency - currency - exchangeRate - externalId - debitLines - creditLines - customFields additionalProperties: false title: The Journal Entry object x-conductor-object-type: transaction summary: >- A journal entry is a direct way to record financial transactions by their debit and credit impacts on accounts, typically used for recording depreciation, adjusting entries, or other transactions that can't be entered through standard forms like bills or invoices. qbd_journal_debit_line: type: object properties: id: type: string description: >- The unique identifier assigned by QuickBooks to this journal debit line. This ID is unique across all transaction line types. example: 456DEF-1234567890 objectType: description: The type of object. This value is always `"qbd_journal_debit_line"`. example: qbd_journal_debit_line type: string const: qbd_journal_debit_line account: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The account to which this journal debit line is being debited. This will decrease the balance of this account. example: id: 80000001-1234567890 fullName: Checking amount: anyOf: - type: string - type: 'null' description: >- The monetary amount of this journal debit line, represented as a decimal string. example: '1000.00' memo: anyOf: - type: string - type: 'null' description: A memo or note for this journal debit line. example: Monthly utility bill settlement entity: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The customer, vendor, employee, or other entity associated with this journal debit line. **IMPORTANT**: If the journal debit line's `account` is an Accounts Receivable (A/R) account, this field must refer to a customer. If the journal debit line's `account` is an Accounts Payable (A/P) account, this field must refer to a vendor. If these requirements are not met, QuickBooks Desktop will not record the transaction. example: id: 80000001-1234567890 fullName: Acme Corporation class: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The journal debit 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 journal debit lines unless overridden here, at the transaction line level. example: id: 80000001-1234567890 fullName: Facilities & Utilities salesTaxItem: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The sales-tax item used to calculate the actual tax amount for this journal debit line's transactions by applying a specific tax rate collected for a single tax agency. Unlike `salesTaxCode`, which only indicates general taxability, this field drives the actual tax calculation and reporting. example: id: 80000001-1234567890 fullName: State Sales Tax billingStatus: anyOf: - type: string enum: - billable - has_been_billed - not_billable - type: 'null' description: The billing status of this journal debit line. example: billable required: - id - objectType - account - amount - memo - entity - class - salesTaxItem - billingStatus additionalProperties: false title: The Journal Debit Line object x-conductor-object-type: nested qbd_journal_credit_line: type: object properties: id: type: string description: >- The unique identifier assigned by QuickBooks to this journal credit line. This ID is unique across all transaction line types. example: 456DEF-1234567890 objectType: description: >- The type of object. This value is always `"qbd_journal_credit_line"`. example: qbd_journal_credit_line type: string const: qbd_journal_credit_line account: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The account to which this journal credit line is being credited. This will increase the balance of this account. example: id: 80000001-1234567890 fullName: Accounts-Payable amount: anyOf: - type: string - type: 'null' description: >- The monetary amount of this journal credit line, represented as a decimal string. example: '1000.00' memo: anyOf: - type: string - type: 'null' description: A memo or note for this journal credit line. example: Allocated funds for office lease payment entity: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The customer, vendor, employee, or other entity associated with this journal credit line. **IMPORTANT**: If the journal credit line's `account` is an Accounts Receivable (A/R) account, this field must refer to a customer. If the journal credit line's `account` is an Accounts Payable (A/P) account, this field must refer to a vendor. If these requirements are not met, QuickBooks Desktop will not record the transaction. example: id: 80000001-1234567890 fullName: Acme Corporation class: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The journal credit 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 journal credit lines unless overridden here, at the transaction line level. example: id: 80000001-1234567890 fullName: Administrative salesTaxItem: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The sales-tax item used to calculate the actual tax amount for this journal credit line's transactions by applying a specific tax rate collected for a single tax agency. Unlike `salesTaxCode`, which only indicates general taxability, this field drives the actual tax calculation and reporting. example: id: 80000001-1234567890 fullName: State Sales Tax billingStatus: anyOf: - type: string enum: - billable - has_been_billed - not_billable - type: 'null' description: The billing status of this journal credit line. example: billable required: - id - objectType - account - amount - memo - entity - class - salesTaxItem - billingStatus additionalProperties: false title: The Journal Credit Line object x-conductor-object-type: nested qbd_non_inventory_item: type: object properties: id: type: string description: >- The unique identifier assigned by QuickBooks to this non-inventory item. This ID is unique across all non-inventory items but not across different QuickBooks object types. example: 80000001-1234567890 objectType: description: The type of object. This value is always `"qbd_non_inventory_item"`. example: qbd_non_inventory_item type: string const: qbd_non_inventory_item createdAt: type: string description: >- The date and time when this non-inventory item 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. example: 2025-01-01T12:34:56.000Z updatedAt: type: string description: >- The date and time when this non-inventory item 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. example: 2025-02-01T12:34:56.000Z revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of this non-inventory item 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. example: '1721172183' name: type: string description: >- The case-insensitive name of this non-inventory item. Not guaranteed to be unique because it does not include the names of its hierarchical parent objects like `fullName` does. For example, two non-inventory items could both have the `name` "Printer Ink Cartridge", but they could have unique `fullName` values, such as "Office Supplies:Printer Ink Cartridge" and "Miscellaneous:Printer Ink Cartridge". example: Printer Ink Cartridge fullName: type: string description: >- The case-insensitive fully-qualified unique name of this non-inventory item, formed by combining the names of its hierarchical parent objects with its own `name`, separated by colons. For example, if a non-inventory item is under "Office Supplies" and has the `name` "Printer Ink Cartridge", its `fullName` would be "Office Supplies:Printer Ink Cartridge". **NOTE**: Unlike `name`, `fullName` is guaranteed to be unique across all non-inventory item objects. However, `fullName` can still be arbitrarily changed by the QuickBooks user when they modify the underlying `name` field. example: Office Supplies:Printer Ink Cartridge barcode: anyOf: - type: string - type: 'null' description: The non-inventory item's barcode. example: '012345678905' isActive: type: boolean description: >- Indicates whether this non-inventory item is active. Inactive objects are typically hidden from views and reports in QuickBooks. Defaults to `true`. example: true class: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The non-inventory item'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. example: id: 80000001-1234567890 fullName: Administrative parent: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The parent non-inventory item one level above this one in the hierarchy. For example, if this non-inventory item has a `fullName` of "Office Supplies:Printer Ink Cartridge", its parent has a `fullName` of "Office Supplies". If this non-inventory item is at the top level, this field will be `null`. example: id: 80000001-1234567890 fullName: Office Supplies sublevel: type: number description: >- The depth level of this non-inventory item in the hierarchy. A top-level non-inventory item has a `sublevel` of 0; each subsequent sublevel increases this number by 1. For example, a non-inventory item with a `fullName` of "Office Supplies:Printer Ink Cartridge" would have a `sublevel` of 1. example: 1 sku: anyOf: - type: string - type: 'null' description: >- The non-inventory item's stock keeping unit (SKU), which is sometimes the manufacturer's part number. example: MPN-123456 unitOfMeasureSet: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The unit-of-measure set associated with this non-inventory item, which consists of a base unit and related units. example: id: 80000001-1234567890 fullName: Weight Units salesTaxCode: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The default sales-tax code for this non-inventory item, determining whether it is taxable or non-taxable. This can be overridden at the transaction-line level. 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. example: id: 80000001-1234567890 fullName: Non salesOrPurchaseDetails: anyOf: - $ref: '#/components/schemas/qbd_sales_or_purchase_details' - type: 'null' description: >- Details for non-inventory items that are exclusively sold or exclusively purchased, but not both. This typically applies to non-inventory items (like a purchased office supply that isn't resold) or service items (like consulting services that are sold but not purchased). **IMPORTANT**: A non-inventory item will have either `salesAndPurchaseDetails` or `salesOrPurchaseDetails`, but never both because an item cannot have both configurations. salesAndPurchaseDetails: anyOf: - $ref: '#/components/schemas/qbd_sales_and_purchase_details' - type: 'null' description: >- Details for non-inventory items that are both purchased and sold, such as reimbursable expenses or inventory items that are bought from vendors and sold to customers. **IMPORTANT**: A non-inventory item will have either `salesAndPurchaseDetails` or `salesOrPurchaseDetails`, but never both because an item cannot have both configurations. externalId: anyOf: - type: string description: >- 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: 12345678-abcd-1234-abcd-1234567890ab - type: 'null' customFields: type: array items: $ref: '#/components/schemas/qbd_custom_field' description: >- The custom fields for the non-inventory item object, added as user-defined data extensions, not included in the standard QuickBooks object. required: - id - objectType - createdAt - updatedAt - revisionNumber - name - fullName - barcode - isActive - class - parent - sublevel - sku - unitOfMeasureSet - salesTaxCode - salesOrPurchaseDetails - salesAndPurchaseDetails - externalId - customFields additionalProperties: false title: The Non-Inventory Item object x-conductor-object-type: item summary: >- A non-inventory item is any material or part that a business buys but does not keep on hand as inventory. There are two types of non-inventory items: 1. Materials or parts that are part of the business's overhead (for example, office supplies) 2. Materials or parts that the business buys to finish a specific job and then charges back to the customer. qbd_sales_or_purchase_details: type: object properties: description: anyOf: - type: string - type: 'null' description: A description of this item. example: Hourly Consulting Service price: anyOf: - type: string - type: 'null' description: >- The price at which this item is purchased or sold, represented as a decimal string. example: '19.99' pricePercentage: anyOf: - type: string - type: 'null' description: >- The price of this item expressed as a percentage, used instead of `price` when the item's cost is calculated as a percentage of another amount. For example, a service item that costs a percentage of another item's price. example: '10.5' postingAccount: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The posting account to which transactions involving this item are posted. This could be an income account when selling or an expense account when purchasing. example: id: 80000001-1234567890 fullName: Income:Consulting Services required: - description - price - pricePercentage - postingAccount additionalProperties: false title: The Sales-or-Purchase Details object x-conductor-object-type: nested qbd_sales_and_purchase_details: type: object properties: salesDescription: anyOf: - type: string - type: 'null' description: >- The description of this item that appears on sales forms (e.g., invoices, sales receipts) when sold to customers. example: High-quality steel bolts suitable for construction salesPrice: anyOf: - type: string - type: 'null' description: >- The price at which this item is sold to customers, represented as a decimal string. example: '19.99' incomeAccount: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: The income account used to track revenue from sales of this item. example: id: 80000001-1234567890 fullName: Income:Product Sales purchaseDescription: anyOf: - type: string - type: 'null' description: >- The description of this item that appears on purchase forms (e.g., checks, bills, item receipts) when it is ordered or bought from vendors. example: Bulk purchase of steel bolts for inventory purchaseCost: anyOf: - type: string - type: 'null' description: >- The cost at which this item is purchased from vendors, represented as a decimal string. example: '15.75' purchaseTaxCode: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The tax code applied to purchases of this item. Applicable in regions where purchase taxes are used, such as Canada or the UK. example: id: 80000001-1234567890 fullName: GST expenseAccount: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: The expense account used to track costs from purchases of this item. example: id: 80000001-1234567890 fullName: Expenses:Cost of Goods Sold preferredVendor: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: The preferred vendor from whom this item is typically purchased. example: id: 80000001-1234567890 fullName: Acme Supplies Ltd. required: - salesDescription - salesPrice - incomeAccount - purchaseDescription - purchaseCost - purchaseTaxCode - expenseAccount - preferredVendor additionalProperties: false title: The Sales-and-Purchase Details object x-conductor-object-type: nested qbd_other_charge_item: type: object properties: id: type: string description: >- The unique identifier assigned by QuickBooks to this other charge item. This ID is unique across all other charge items but not across different QuickBooks object types. example: 80000001-1234567890 objectType: description: The type of object. This value is always `"qbd_other_charge_item"`. example: qbd_other_charge_item type: string const: qbd_other_charge_item createdAt: type: string description: >- The date and time when this other charge item 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. example: 2025-01-01T12:34:56.000Z updatedAt: type: string description: >- The date and time when this other charge item 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. example: 2025-02-01T12:34:56.000Z revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of this other charge item 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. example: '1721172183' name: type: string description: >- The case-insensitive name of this other charge item. Not guaranteed to be unique because it does not include the names of its hierarchical parent objects like `fullName` does. For example, two other charge items could both have the `name` "Overnight Delivery", but they could have unique `fullName` values, such as "Shipping Charges:Overnight Delivery" and "Misc Fees:Overnight Delivery". example: Overnight Delivery fullName: type: string description: >- The case-insensitive fully-qualified unique name of this other charge item, formed by combining the names of its hierarchical parent objects with its own `name`, separated by colons. For example, if an other charge item is under "Shipping Charges" and has the `name` "Overnight Delivery", its `fullName` would be "Shipping Charges:Overnight Delivery". **NOTE**: Unlike `name`, `fullName` is guaranteed to be unique across all other charge item objects. However, `fullName` can still be arbitrarily changed by the QuickBooks user when they modify the underlying `name` field. example: Shipping Charges:Overnight Delivery barcode: anyOf: - type: string - type: 'null' description: The other charge item's barcode. example: '012345678905' isActive: type: boolean description: >- Indicates whether this other charge item is active. Inactive objects are typically hidden from views and reports in QuickBooks. Defaults to `true`. example: true class: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The other charge item'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. example: id: 80000001-1234567890 fullName: Shipping parent: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The parent other charge item one level above this one in the hierarchy. For example, if this other charge item has a `fullName` of "Shipping Charges:Overnight Delivery", its parent has a `fullName` of "Shipping Charges". If this other charge item is at the top level, this field will be `null`. example: id: 80000001-1234567890 fullName: Shipping Charges sublevel: type: number description: >- The depth level of this other charge item in the hierarchy. A top-level other charge item has a `sublevel` of 0; each subsequent sublevel increases this number by 1. For example, an other charge item with a `fullName` of "Shipping Charges:Overnight Delivery" would have a `sublevel` of 1. example: 1 salesTaxCode: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The default sales-tax code for this other charge item, determining whether it is taxable or non-taxable. This can be overridden at the transaction-line level. 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. example: id: 80000001-1234567890 fullName: Non salesOrPurchaseDetails: anyOf: - $ref: '#/components/schemas/qbd_sales_or_purchase_details' - type: 'null' description: >- Details for other charge items that are exclusively sold or exclusively purchased, but not both. This typically applies to non-inventory items (like a purchased office supply that isn't resold) or service items (like consulting services that are sold but not purchased). **IMPORTANT**: An other charge item will have either `salesAndPurchaseDetails` or `salesOrPurchaseDetails`, but never both because an item cannot have both configurations. salesAndPurchaseDetails: anyOf: - $ref: '#/components/schemas/qbd_sales_and_purchase_details' - type: 'null' description: >- Details for other charge items that are both purchased and sold, such as reimbursable expenses or inventory items that are bought from vendors and sold to customers. **IMPORTANT**: An other charge item will have either `salesAndPurchaseDetails` or `salesOrPurchaseDetails`, but never both because an item cannot have both configurations. specialItemType: anyOf: - type: string enum: - finance_charge - reimbursable_expense_group - reimbursable_expense_subtotal - type: 'null' description: The type of special item for this other charge item. example: finance_charge externalId: anyOf: - type: string description: >- 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: 12345678-abcd-1234-abcd-1234567890ab - type: 'null' customFields: type: array items: $ref: '#/components/schemas/qbd_custom_field' description: >- The custom fields for the other charge item object, added as user-defined data extensions, not included in the standard QuickBooks object. required: - id - objectType - createdAt - updatedAt - revisionNumber - name - fullName - barcode - isActive - class - parent - sublevel - salesTaxCode - salesOrPurchaseDetails - salesAndPurchaseDetails - specialItemType - externalId - customFields additionalProperties: false title: The Other Charge Item object x-conductor-object-type: item summary: >- An other charge item is a miscellaneous charge that does not fall into the categories of service, labor, materials, or parts. Examples include delivery charges, setup fees, and service charges. You can use other charge items to add fees or credits to invoices, sales receipts, and bills without tracking quantity. qbd_other_name: type: object properties: id: type: string description: >- The unique identifier assigned by QuickBooks to this other-name. This ID is unique across all other-names but not across different QuickBooks object types. example: 80000001-1234567890 objectType: description: The type of object. This value is always `"qbd_other_name"`. example: qbd_other_name type: string const: qbd_other_name createdAt: type: string description: >- The date and time when this other-name 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. example: 2025-01-01T12:34:56.000Z updatedAt: type: string description: >- The date and time when this other-name 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. example: 2025-02-01T12:34:56.000Z revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of this other-name 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. example: '1721172183' name: type: string description: >- The case-insensitive unique name of this other-name, unique across all other-names. **NOTE**: Other-names do not have a `fullName` field because they are not hierarchical objects, which is why `name` is unique for them but not for objects that have parents. example: John Doe isActive: type: boolean description: >- Indicates whether this other-name is active. Inactive objects are typically hidden from views and reports in QuickBooks. Defaults to `true`. example: true companyName: anyOf: - type: string - type: 'null' description: >- The name of the company associated with this other-name. This name is used on invoices, checks, and other forms. example: Acme Corporation salutation: anyOf: - type: string - type: 'null' description: >- The formal salutation title that precedes the name of the contact person for this other-name, such as "Mr.", "Ms.", or "Dr.". example: Dr. firstName: anyOf: - type: string - type: 'null' description: The first name of the contact person for this other-name. example: John middleName: anyOf: - type: string - type: 'null' description: The middle name of the contact person for this other-name. example: A. lastName: anyOf: - type: string - type: 'null' description: The last name of the contact person for this other-name. example: Doe address: anyOf: - $ref: '#/components/schemas/qbd_address' - type: 'null' description: The other-name's address. phone: anyOf: - type: string - type: 'null' description: The other-name's primary telephone number. example: +1-555-123-4567 alternatePhone: anyOf: - type: string - type: 'null' description: The other-name's alternate telephone number. example: +1-555-987-6543 fax: anyOf: - type: string - type: 'null' description: The other-name's fax number. example: +1-555-555-1212 email: anyOf: - type: string - type: 'null' description: The other-name's email address. example: other-name@example.com contact: anyOf: - type: string - type: 'null' description: The name of the primary contact person for this other-name. example: Jane Smith alternateContact: anyOf: - type: string - type: 'null' description: The name of a alternate contact person for this other-name. example: Bob Johnson accountNumber: anyOf: - type: string - type: 'null' description: >- The other-name's account number, which appears in the QuickBooks chart of accounts, reports, and graphs. Note that if the "Use Account Numbers" preference is turned off in QuickBooks, the account number may not be visible in the user interface, but it can still be set and retrieved through the API. example: '1010' note: anyOf: - type: string - type: 'null' description: A note or comment about this other-name. example: This employee is a key employee. externalId: anyOf: - type: string description: >- 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: 12345678-abcd-1234-abcd-1234567890ab - type: 'null' customFields: type: array items: $ref: '#/components/schemas/qbd_custom_field' description: >- The custom fields for the other-name object, added as user-defined data extensions, not included in the standard QuickBooks object. required: - id - objectType - createdAt - updatedAt - revisionNumber - name - isActive - companyName - salutation - firstName - middleName - lastName - address - phone - alternatePhone - fax - email - contact - alternateContact - accountNumber - note - externalId - customFields additionalProperties: false title: The Other-Name object x-conductor-object-type: other summary: >- An "other name" entity in QuickBooks Desktop lets users track individuals or businesses that are neither customers, vendors, nor employees, allowing them to record occasional transactions without cluttering the primary lists. qbd_payment_method: type: object properties: id: type: string description: >- The unique identifier assigned by QuickBooks to this payment method. This ID is unique across all payment methods but not across different QuickBooks object types. example: 80000001-1234567890 objectType: description: The type of object. This value is always `"qbd_payment_method"`. example: qbd_payment_method type: string const: qbd_payment_method createdAt: type: string description: >- The date and time when this payment method 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. example: 2025-01-01T12:34:56.000Z updatedAt: type: string description: >- The date and time when this payment method 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. example: 2025-02-01T12:34:56.000Z revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of this payment method 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. example: '1721172183' name: type: string description: >- The case-insensitive unique name of this payment method, unique across all payment methods. **NOTE**: Payment methods do not have a `fullName` field because they are not hierarchical objects, which is why `name` is unique for them but not for objects that have parents. example: Cash isActive: type: boolean description: >- Indicates whether this payment method is active. Inactive objects are typically hidden from views and reports in QuickBooks. Defaults to `true`. example: true paymentMethodType: type: string enum: - american_express - cash - check - debit_card - discover - e_check - gift_card - master_card - other - other_credit_card - visa description: This payment method's type. example: cash required: - id - objectType - createdAt - updatedAt - revisionNumber - name - isActive - paymentMethodType additionalProperties: false title: The Payment Method object x-conductor-object-type: other summary: >- A payment method defines a type of payment scheme in QuickBooks Desktop, such as Cash or Check, that specifies how a customer pays for goods or services. qbd_payment_to_deposit: type: object properties: paymentTransactionId: type: string maxLength: 36 description: >- The ID of the received payment that is available to deposit. Pass this value as `paymentTransactionId` when creating a deposit line. example: 123ABC-1234567890 paymentTransactionLineId: anyOf: - type: string maxLength: 36 description: >- The ID of the specific received-payment line that is available to deposit. If this value is not `null`, pass it as `paymentTransactionLineId` with `paymentTransactionId` when creating a deposit line. example: 456DEF-1234567890 - type: 'null' transactionType: type: string enum: - 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 description: The type of transaction for this payment to deposit. example: invoice customer: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The customer or customer-job associated with this payment to deposit. example: id: 80000001-1234567890 fullName: Acme Corporation transactionDate: type: string format: date description: >- The date of this payment to deposit, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-01' refNumber: anyOf: - type: string - type: 'null' description: >- The case-sensitive user-defined reference number for this payment to deposit, 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. example: PAYMENT-1234 amount: type: string description: >- The monetary amount of this received payment that is currently available to deposit, represented as a decimal string. example: '1000.00' currency: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The payment to deposit's currency. For built-in currencies, the name and code are standard ISO 4217 international values. For user-defined currencies, all values are editable. example: id: 80000001-1234567890 fullName: USD exchangeRate: anyOf: - type: number - type: 'null' description: >- The market exchange rate between this payment to deposit'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: 1.2345 amountInHomeCurrency: anyOf: - type: string - type: 'null' description: >- The monetary amount of this payment to deposit converted to the home currency of the QuickBooks company file. Represented as a decimal string. example: '1234.56' required: - paymentTransactionId - paymentTransactionLineId - transactionType - customer - transactionDate - refNumber - amount - currency - exchangeRate - amountInHomeCurrency additionalProperties: false title: The Payment To Deposit object x-conductor-object-type: transaction x-conductor-sidebar-group-name: Payments to Deposit summary: >- A payment to deposit is a received customer payment that is currently available to include in a QuickBooks Desktop deposit. Use its IDs when creating deposit lines that move payments from Undeposited Funds into a bank or other asset account. qbd_payroll_wage_item: type: object properties: id: type: string description: >- The unique identifier assigned by QuickBooks to this payroll wage item. This ID is unique across all payroll wage items but not across different QuickBooks object types. example: 80000001-1234567890 objectType: description: The type of object. This value is always `"qbd_payroll_wage_item"`. example: qbd_payroll_wage_item type: string const: qbd_payroll_wage_item createdAt: type: string description: >- The date and time when this payroll wage item 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. example: 2025-01-01T12:34:56.000Z updatedAt: type: string description: >- The date and time when this payroll wage item 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. example: 2025-02-01T12:34:56.000Z revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of this payroll wage item 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. example: '1721172183' name: type: string description: >- The case-insensitive unique name of this payroll wage item, unique across all payroll wage items. **NOTE**: Payroll wage items do not have a `fullName` field because they are not hierarchical objects, which is why `name` is unique for them but not for objects that have parents. example: Regular Pay isActive: type: boolean description: >- Indicates whether this payroll wage item is active. Inactive objects are typically hidden from views and reports in QuickBooks. Defaults to `true`. example: true wageType: type: string enum: - bonus - commission - hourly_overtime - hourly_regular - hourly_sick - hourly_vacation - salary_regular - salary_sick - salary_vacation description: >- Categorizes how this payroll wage item calculates pay - can be hourly (regular, overtime, sick, or vacation), salary (regular, sick, or vacation), bonus, or commission based. example: hourly_regular expenseAccount: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The expense account used to track wage expenses paid through this payroll wage item. example: id: 80000001-1234567890 fullName: Expenses:Payroll overtimeMultiplier: anyOf: - type: string - type: 'null' description: >- The overtime pay multiplier for this payroll wage item, represented as a decimal string. For example, `"1.5"` represents time-and-a-half pay. example: '1.5' rate: anyOf: - type: string - type: 'null' description: >- The default rate for this payroll wage item, represented as a decimal string. Only one of `rate` and `ratePercent` can be set. example: '15.00' ratePercent: anyOf: - type: string - type: 'null' description: >- The default rate for this payroll wage item expressed as a percentage. Only one of `rate` and `ratePercent` can be set. example: '10' required: - id - objectType - createdAt - updatedAt - revisionNumber - name - isActive - wageType - expenseAccount - overtimeMultiplier - rate - ratePercent additionalProperties: false title: The Payroll Wage Item object x-conductor-object-type: other summary: >- A payroll wage item defines a type of payment scheme in QuickBooks Desktop, such as Regular Pay or Overtime Pay, that specifies how employee wages are calculated and tracked. qbd_preferences: type: object properties: accounting: description: The accounting preferences for this company file. $ref: '#/components/schemas/qbd_accounting_preferences' financeCharges: description: >- The finance charge preferences for this company file. These settings determine how late payment charges are calculated and applied to customer accounts. $ref: '#/components/schemas/qbd_finance_charge_preferences' jobsAndEstimates: description: The jobs and estimates preferences for this company file. $ref: '#/components/schemas/qbd_jobs_and_estimates_preferences' multiCurrency: anyOf: - $ref: '#/components/schemas/qbd_multi_currency_preferences' - type: 'null' description: The multi-currency preferences for this company file. multiLocationInventory: anyOf: - $ref: '#/components/schemas/qbd_multi_location_inventory_preferences' - type: 'null' description: The multi-location inventory preferences for this company file. purchasesAndVendors: description: The purchases and vendors preferences for this company file. $ref: '#/components/schemas/qbd_purchases_and_vendors_preferences' reports: description: The reporting preferences for this company file. $ref: '#/components/schemas/qbd_reports_preferences' salesAndCustomers: description: The sales and customers preferences for this company file. $ref: '#/components/schemas/qbd_sales_and_customers_preferences' salesTax: anyOf: - $ref: '#/components/schemas/qbd_sales_tax_preferences' - type: 'null' description: >- The sales-tax preferences for this company file. If sales tax is turned off in the user interface (that is, if "No" is selected for "Do You Charge Sales Tax?" in the sales tax preferences), then this field will be `null`. timeTracking: anyOf: - $ref: '#/components/schemas/qbd_time_tracking_preferences' - type: 'null' description: >- The time-tracking preferences for this company file. If time tracking is turned off in the user interface (that is, if "No" is selected for "Do You Track Time?" in the time tracking preferences), then this field will be `null`. appAccessRights: description: The current application access rights for this company file. $ref: '#/components/schemas/qbd_current_app_access_rights' itemsAndInventory: anyOf: - $ref: '#/components/schemas/qbd_items_and_inventory_preferences' - type: 'null' description: The item inventory preferences for this company file. required: - accounting - financeCharges - jobsAndEstimates - multiCurrency - multiLocationInventory - purchasesAndVendors - reports - salesAndCustomers - salesTax - timeTracking - appAccessRights - itemsAndInventory additionalProperties: false title: The Preferences object x-conductor-object-type: other x-conductor-sidebar-group-name: Preferences summary: >- The preferences that the QuickBooks administrator has set for all users of the connected company file. qbd_accounting_preferences: type: object properties: isUsingAccountNumbers: type: boolean description: >- Indicates whether this company file is configured to record an account number for new accounts. If you include an account number when creating a new account while this preference is `false`, the account number will still be set, but will not be visible in the QuickBooks user interface. example: true isRequiringAccounts: type: boolean description: >- Indicates whether this company file is configured to require an account for new transactions. If `true`, a transaction cannot be recorded in the QuickBooks user interface unless it is assigned to an account. (However, transactions affected by this preference always require an account to be specified when added through the API.) example: true isUsingClassTracking: type: boolean description: >- Indicates whether this company file is configured to use the `class` field on all transactions. example: true defaultTransactionClass: anyOf: - type: string enum: - accounts - items - names - none - type: 'null' description: The default class assigned to transactions for this company file. example: accounts isUsingAuditTrail: type: boolean description: >- Indicates whether this company file is configured to log all transaction changes in the audit trail report. If `false`, QuickBooks logs only the most recent version of each transaction. example: true isAssigningJournalEntryNumbers: type: boolean description: >- Indicates whether this company file is configured to automatically assign a number to each journal entry. example: true closingDate: anyOf: - type: string format: date - type: 'null' description: >- The company closing date set within this company file. (The QuickBooks Admin can assign a password restricting access to transactions that occurred before this date.) example: 2024-12-31T00:00:00.000Z required: - isUsingAccountNumbers - isRequiringAccounts - isUsingClassTracking - defaultTransactionClass - isUsingAuditTrail - isAssigningJournalEntryNumbers - closingDate additionalProperties: false title: The Accounting Preferences object x-conductor-object-type: nested qbd_finance_charge_preferences: type: object properties: annualInterestRate: anyOf: - type: number - type: 'null' description: >- The interest rate that QuickBooks will use to calculate finance charges for this company file. Default is `0`. example: 0.05 default: 0 minimumFinanceCharge: anyOf: - type: number - type: 'null' description: >- The minimum finance charge that will be applied regardless of the amount overdue for this company file. Default is `0`. example: 100 default: 0 gracePeriod: type: number description: >- The number of days before finance charges apply to customers' overdue invoices for this company file. Default is `0`. example: 30 default: 0 financeChargeAccount: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The account used to track finance charges that customers pay for this company file. This is usually an income account. example: id: 80000001-1234567890 fullName: Interest Income isAssessingForOverdueCharges: type: boolean description: >- Indicates whether this company file is configured to assess finance charges for overdue invoices. Default is `false`. (Note that laws vary about whether a company can charge interest on overdue interest payments.) example: false calculateChargesFrom: type: string enum: - due_date - invoice_or_billed_date description: >- The date from which finance charges are calculated for this company file. Default is `due_date`. example: due_date isMarkedToBePrinted: type: boolean description: >- Indicates whether this company file is configured to mark all newly created finance-charge invoices as "to be printed". Default is `false`. The user can still change this preference for each individual invoice. example: false required: - annualInterestRate - minimumFinanceCharge - gracePeriod - financeChargeAccount - isAssessingForOverdueCharges - calculateChargesFrom - isMarkedToBePrinted additionalProperties: false title: The Finance Charge Preferences object x-conductor-object-type: nested qbd_jobs_and_estimates_preferences: type: object properties: isUsingEstimates: type: boolean description: >- Indicates whether this company file is configured to create estimates for jobs. example: true isUsingProgressInvoicing: type: boolean description: >- Indicates whether this company file permits creating invoices for only a portion of an estimate. example: true isPrintingItemsWithZeroAmounts: type: boolean description: >- Indicates whether this company file is configured to print line items with zero amounts on progress invoices. This preference is only relevant if `isUsingProgressInvoicing` is `true`. example: true required: - isUsingEstimates - isUsingProgressInvoicing - isPrintingItemsWithZeroAmounts additionalProperties: false title: The Jobs and Estimates Preferences object x-conductor-object-type: nested qbd_multi_currency_preferences: type: object properties: isMultiCurrencyEnabled: anyOf: - type: boolean - type: 'null' description: >- Indicates whether the multicurrency feature is enabled for this company file. Once multicurrency is enabled for a company file, it cannot be disabled. example: true homeCurrency: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The currency that is set as the home currency for this company file. The home currency is normally the currency of the country where the business is physically located. Although a home currency other than US Dollars can be chosen, certain QuickBooks convenience features are available only with a home currency of US Dollars, such as the ability to download current exchange rates. Also, Intuit services such as payroll and online banking are only available in US Dollars. Once the home currency has been set and used in any transaction, it cannot be changed. example: id: 80000001-1234567890 fullName: USD required: - isMultiCurrencyEnabled - homeCurrency additionalProperties: false title: The Multi-Currency Preferences object x-conductor-object-type: nested qbd_multi_location_inventory_preferences: type: object properties: isMultiLocationInventoryAvailable: anyOf: - type: boolean - type: 'null' description: >- Indicates whether the multilocation inventory feature is available for this company file. When `true`, the feature can potentially be enabled. example: true isMultiLocationInventoryEnabled: anyOf: - type: boolean - type: 'null' description: >- Indicates whether the multilocation inventory feature is enabled for this company file. When `true`, inventory can be tracked across multiple locations. example: true required: - isMultiLocationInventoryAvailable - isMultiLocationInventoryEnabled additionalProperties: false title: The Multi-Location Inventory Preferences object x-conductor-object-type: nested qbd_purchases_and_vendors_preferences: type: object properties: isUsingInventory: type: boolean description: >- Indicates whether this company file has inventory-related features enabled. example: true daysBillsAreDue: type: number description: >- The default number of days after receipt when bills are due for this company file. example: 30 isAutomaticallyUsingDiscounts: type: boolean description: >- Indicates whether this company file is configured to automatically apply available vendor discounts or credits when paying bills. example: true defaultDiscountAccount: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: The account used to track vendor discounts for this company file. example: id: 80000001-1234567890 fullName: Discount Account required: - isUsingInventory - daysBillsAreDue - isAutomaticallyUsingDiscounts - defaultDiscountAccount additionalProperties: false title: The Purchases and Vendors Preferences object x-conductor-object-type: nested qbd_reports_preferences: type: object properties: agingReportBasis: type: string enum: - age_from_due_date - age_from_transaction_date description: >- Determines how the aging periods are calculated in accounts receivable and accounts payable reports for this company file. When set to `age_from_due_date`, the overdue days shown in these reports begin with the due date on the invoice. When set to `age_from_transaction_date`, the overdue days begin with the date the transaction was created. example: age_from_due_date summaryReportBasis: type: string enum: - accrual - cash description: >- Indicates whether summary reports for this company file use cash-basis or accrual-basis bookkeeping. With `accrual` basis, transactions are recorded when they occur regardless of when payment is received or made. With `cash` basis, transactions are recorded only when payment is received or made. example: accrual required: - agingReportBasis - summaryReportBasis additionalProperties: false title: The Reports Preferences object x-conductor-object-type: nested qbd_price_levels: type: object properties: isUsingPriceLevels: type: boolean description: >- Indicates whether this company file has price levels enabled. When `true`, price levels can be created and used to automatically calculate custom pricing for different customers. example: true isRoundingSalesPriceUp: anyOf: - type: boolean - type: 'null' description: >- Indicates whether this company file is configured to round amounts up to the nearest whole dollar for fixed percentage price levels. This setting does not affect per-item price levels. example: false required: - isUsingPriceLevels - isRoundingSalesPriceUp additionalProperties: false title: The Price Levels object x-conductor-object-type: nested qbd_sales_and_customers_preferences: type: object properties: defaultShippingMethod: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The default shipping method used in all "Ship Via" fields for this company file. example: id: 80000001-1234567890 fullName: FedEx Ground defaultShipmentOrigin: anyOf: - type: string - type: 'null' description: >- The default shipment-origin location (i.e., FOB - freight on board) from which invoiced products are shipped for this company file. This indicates the point at which ownership and liability for goods transfer from seller to buyer. example: San Francisco, CA defaultMarkupPercentage: anyOf: - type: string - type: 'null' description: >- The default percentage that an inventory item will be marked up from its cost for this company file. example: '25' isTrackingReimbursedExpensesAsIncome: type: boolean description: >- Indicates whether this company file is configured to track an expense and the customer's reimbursement for that expense in separate accounts. When `true`, reimbursements can be tracked as income rather than as a reduction of the original expense. example: true isAutoApplyingPayments: type: boolean description: >- Indicates whether this company file is configured to automatically apply a customer's payment to their outstanding invoices, beginning with the oldest invoice. example: true priceLevels: anyOf: - $ref: '#/components/schemas/qbd_price_levels' - type: 'null' description: >- The custom pricing settings for this company file that can be assigned to specific customers. When a price level is set for a customer, QuickBooks automatically applies these custom prices to new invoices, sales receipts, sales orders, and credit memos. These settings can be overridden when creating individual transactions, and price levels can also be specified on individual line items in supported sales transactions. required: - defaultShippingMethod - defaultShipmentOrigin - defaultMarkupPercentage - isTrackingReimbursedExpensesAsIncome - isAutoApplyingPayments - priceLevels additionalProperties: false title: The Sales and Customers Preferences object x-conductor-object-type: nested qbd_sales_tax_preferences: type: object properties: defaultItemSalesTax: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: The default tax code for sales for this company file. example: id: 80000001-1234567890 fullName: State Sales Tax salesTaxReportingFrequency: type: string enum: - monthly - quarterly - annually description: >- The frequency at which sales tax reports are generated for this company file. example: quarterly defaultTaxableSalesTaxCode: type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false description: The default tax code for taxable sales for this company file. example: id: 80000001-1234567890 fullName: Tax defaultNonTaxableSalesTaxCode: type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false description: The default tax code for non-taxable sales for this company file. example: id: 80000001-1234567890 fullName: Non isUsingVendorTaxCode: anyOf: - type: boolean - type: 'null' description: >- Indicates whether this company file is configured to use tax codes for vendors. example: true isUsingCustomerTaxCode: anyOf: - type: boolean - type: 'null' description: >- Indicates whether this company file is configured to use tax codes for customers. example: true isUsingTaxInclusivePrices: anyOf: - type: boolean - type: 'null' description: >- Indicates whether this company file is configured to allow tax-inclusive prices. example: false required: - defaultItemSalesTax - salesTaxReportingFrequency - defaultTaxableSalesTaxCode - defaultNonTaxableSalesTaxCode - isUsingVendorTaxCode - isUsingCustomerTaxCode - isUsingTaxInclusivePrices additionalProperties: false title: The Sales Tax Preferences object x-conductor-object-type: nested qbd_time_tracking_preferences: type: object properties: firstDayOfWeek: type: string enum: - monday - tuesday - wednesday - thursday - friday - saturday - sunday description: The first day of a weekly timesheet period for this company file. example: monday required: - firstDayOfWeek additionalProperties: false title: Time tracking preferences x-conductor-object-type: nested qbd_current_app_access_rights: type: object properties: isAutomaticLoginAllowed: type: boolean description: >- Indicates whether applications can use auto-login to access this company file. example: true automaticLoginUserName: anyOf: - type: string - type: 'null' description: >- If auto-login is allowed for this company file, specifies the user name that is allowed to use auto-login. example: admin isPersonalDataAccessAllowed: type: boolean description: >- Indicates whether access is allowed to personal (sensitive) data in this company file. example: true required: - isAutomaticLoginAllowed - automaticLoginUserName - isPersonalDataAccessAllowed additionalProperties: false title: The Current App Access Rights object x-conductor-object-type: nested qbd_items_and_inventory_preferences: type: object properties: isEnhancedInventoryReceivingEnabled: anyOf: - type: boolean - type: 'null' description: >- Indicates whether enhanced inventory receiving is enabled for this company file. example: true inventoryTrackingMethod: anyOf: - type: string enum: - none - serial_number - lot_number - type: 'null' description: >- Specifies the type of inventory tracking that this company file uses. example: serial_number isInventoryExpirationDateEnabled: anyOf: - type: boolean - type: 'null' description: >- Indicates whether expiration dates for inventory serial/lot numbers are enabled for this company file. This feature is supported from QuickBooks Desktop 2023. example: true isTrackingOnSalesTransactionsEnabled: anyOf: - type: boolean - type: 'null' description: >- Indicates whether serial/lot number tracking is enabled for sales transactions in this company file. example: true isTrackingOnPurchaseTransactionsEnabled: anyOf: - type: boolean - type: 'null' description: >- Indicates whether serial/lot number tracking is enabled for purchase transactions in this company file. example: true isTrackingOnInventoryAdjustmentEnabled: anyOf: - type: boolean - type: 'null' description: >- Indicates whether serial/lot number tracking is enabled for inventory adjustments in this company file. example: true isTrackingOnBuildAssemblyEnabled: anyOf: - type: boolean - type: 'null' description: >- Indicates whether serial/lot number tracking is enabled for build assemblies in this company file. example: true isFifoEnabled: anyOf: - type: boolean - type: 'null' description: >- Indicates whether this company file is configured to use FIFO (First In, First Out) to calculate the value of inventory sold and on-hand. example: true fifoEffectiveDate: anyOf: - type: string format: date - type: 'null' description: >- The date from which FIFO (First In, First Out) is used to calculate the value of inventory sold and on-hand for this company file, in ISO 8601 format (YYYY-MM-DD). example: 2023-01-01T00:00:00.000Z isBinTrackingEnabled: anyOf: - type: boolean - type: 'null' description: >- Indicates whether bin tracking is enabled for this company file. When `true`, inventory can be tracked by bin locations within sites. example: true isBarcodeEnabled: anyOf: - type: boolean - type: 'null' description: >- Indicates whether barcode functionality is enabled for this company file. example: true required: - isEnhancedInventoryReceivingEnabled - inventoryTrackingMethod - isInventoryExpirationDateEnabled - isTrackingOnSalesTransactionsEnabled - isTrackingOnPurchaseTransactionsEnabled - isTrackingOnInventoryAdjustmentEnabled - isTrackingOnBuildAssemblyEnabled - isFifoEnabled - fifoEffectiveDate - isBinTrackingEnabled - isBarcodeEnabled additionalProperties: false title: The Items and Inventory Preferences object x-conductor-object-type: nested qbd_price_level: type: object properties: id: type: string description: >- The unique identifier assigned by QuickBooks to this price level. This ID is unique across all price levels but not across different QuickBooks object types. example: 80000001-1234567890 objectType: description: The type of object. This value is always `"qbd_price_level"`. example: qbd_price_level type: string const: qbd_price_level createdAt: type: string description: >- The date and time when this price level 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. example: 2025-01-01T12:34:56.000Z updatedAt: type: string description: >- The date and time when this price level 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. example: 2025-02-01T12:34:56.000Z revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of this price level 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. example: '1721172183' name: type: string description: >- The case-insensitive unique name of this price level, unique across all price levels. **NOTE**: Price levels do not have a `fullName` field because they are not hierarchical objects, which is why `name` is unique for them but not for objects that have parents. example: Wholesale 20% Discount isActive: type: boolean description: >- Indicates whether this price level is active. Inactive objects are typically hidden from views and reports in QuickBooks. Defaults to `true`. example: true priceLevelType: type: string enum: - fixed_percentage - per_item description: The price level's type. example: fixed_percentage fixedPercentage: anyOf: - type: string - type: 'null' description: >- The fixed percentage adjustment applied to all items for this price level (instead of a per-item price level). Once you create the price level, you cannot change this. When this price level is applied to a customer, it automatically adjusts the `rate` and `amount` columns for applicable line items in sales orders and invoices for that customer. This value supports both positive and negative values - a value of "20" increases prices by 20%, while "-10" decreases prices by 10%. example: '-10.0' perItemPriceLevels: type: array items: $ref: '#/components/schemas/qbd_per_item_price_level' description: The per-item price level configurations for this price level. currency: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The price level's currency. For built-in currencies, the name and code are standard ISO 4217 international values. For user-defined currencies, all values are editable. example: id: 80000001-1234567890 fullName: USD required: - id - objectType - createdAt - updatedAt - revisionNumber - name - isActive - priceLevelType - fixedPercentage - perItemPriceLevels - currency additionalProperties: false title: The Price Level object x-conductor-object-type: other summary: >- A price level is a configuration that establishes a default price for items. It can be applied to customers to automatically adjust item prices for those customers. Price levels can be either fixed percentages or per-item price levels. qbd_per_item_price_level: type: object properties: item: type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false description: >- The item associated with this per-item price level. 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. example: id: 80000001-1234567890 fullName: Widget A customPrice: anyOf: - type: string - type: 'null' description: >- The fixed amount custom price for this per-item price level that overrides the standard price for the specified item. Used when setting an absolute price value for the item in this price level. example: '19.99' customPricePercent: anyOf: - type: string - type: 'null' description: >- The fixed discount percentage for this per-item price level that modifies the specified item's standard price. Used to create a fixed percentage markup or discount specific to this item within this price level. example: '15.0' required: - item - customPrice - customPricePercent additionalProperties: false title: The Per-Item Price Level object x-conductor-object-type: nested qbd_purchase_order: type: object properties: id: type: string description: >- The unique identifier assigned by QuickBooks to this purchase order. This ID is unique across all transaction types. example: 123ABC-1234567890 objectType: description: The type of object. This value is always `"qbd_purchase_order"`. example: qbd_purchase_order type: string const: qbd_purchase_order createdAt: type: string description: >- 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. example: 2025-01-01T12:34:56.000Z updatedAt: type: string description: >- 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. example: 2025-02-01T12:34:56.000Z revisionNumber: type: string description: >- 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. example: '1721172183' vendor: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The vendor who sent this purchase order for goods or services purchased. example: id: 80000001-1234567890 fullName: Acme Supplies Ltd. class: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- 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. example: id: 80000001-1234567890 fullName: Office Supplies inventorySite: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The site location where inventory for the item associated with this purchase order is stored. example: id: 80000001-1234567890 fullName: Main Warehouse shipToEntity: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The customer, vendor, employee, or other entity to whom this purchase order is to be shipped. example: id: 80000001-1234567890 fullName: Customer documentTemplate: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The predefined template in QuickBooks that determines the layout and formatting for this purchase order when printed or displayed. example: id: 80000001-1234567890 fullName: Purchase Order Template transactionDate: type: string format: date description: The date of this purchase order, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-01' refNumber: anyOf: - type: string - type: 'null' description: >- 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. example: PO-1234 vendorAddress: anyOf: - $ref: '#/components/schemas/qbd_address' - type: 'null' description: The address of the vendor who sent this purchase order. shippingAddress: anyOf: - $ref: '#/components/schemas/qbd_address' - type: 'null' description: The purchase order's shipping address. terms: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The purchase order's payment terms, defining when payment is due and any applicable discounts. example: id: 80000001-1234567890 fullName: Net 30 dueDate: anyOf: - type: string format: date - type: 'null' description: >- The date by which this purchase order must be paid, in ISO 8601 format (YYYY-MM-DD). example: 2024-10-31T00:00:00.000Z expectedDate: anyOf: - type: string format: date - type: 'null' description: >- The date on which shipment of this purchase order is expected to be completed, in ISO 8601 format (YYYY-MM-DD). example: 2024-01-01T00:00:00.000Z shippingMethod: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The shipping method used for this purchase order, such as standard mail or overnight delivery. example: id: 80000001-1234567890 fullName: FedEx Ground shipmentOrigin: anyOf: - type: string - type: 'null' description: >- 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. example: San Francisco, CA totalAmount: type: string description: >- The total monetary amount of this purchase order, equivalent to the sum of the amounts in `lines` and `lineGroups`, represented as a decimal string. example: '1000.00' currency: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- 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. example: id: 80000001-1234567890 fullName: USD exchangeRate: anyOf: - type: number - type: 'null' description: >- 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: 1.2345 totalAmountInHomeCurrency: anyOf: - type: string - type: 'null' description: >- The total monetary amount of this purchase order converted to the home currency of the QuickBooks company file. Represented as a decimal string. example: '1234.56' isManuallyClosed: type: boolean description: >- 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. example: true isFullyReceived: anyOf: - type: boolean - type: 'null' description: >- Indicates whether all items in this purchase order have been received and none of them were closed manually. example: false memo: anyOf: - type: string - type: 'null' description: >- A memo or note for this purchase order that appears in reports, but not on the purchase order. example: Office supplies for September vendorMessage: anyOf: - type: string - type: 'null' description: >- A message to be printed on this purchase order for the vendor to read. example: Please include packing slip with shipment isQueuedForPrint: anyOf: - type: boolean description: >- Indicates whether this purchase order is included in the queue of documents for QuickBooks to print. example: true - type: 'null' isQueuedForEmail: anyOf: - type: boolean - type: 'null' description: >- Indicates whether this purchase order is included in the queue of documents for QuickBooks to email to the customer. example: true salesTaxCode: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- 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. example: id: 80000001-1234567890 fullName: Non otherCustomField1: anyOf: - type: string - type: 'null' description: >- 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. example: Special handling required otherCustomField2: anyOf: - type: string - type: 'null' description: >- 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. example: Always ship with a spare externalId: anyOf: - type: string description: >- 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: 12345678-abcd-1234-abcd-1234567890ab - type: 'null' linkedTransactions: type: array items: $ref: '#/components/schemas/qbd_linked_transaction' description: >- 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. lines: type: array items: $ref: '#/components/schemas/qbd_purchase_order_line' description: >- The purchase order's line items, each representing a single product or service ordered. lineGroups: type: array items: $ref: '#/components/schemas/qbd_purchase_order_line_group' description: >- The purchase order's line item groups, each representing a predefined set of related items. customFields: type: array items: $ref: '#/components/schemas/qbd_custom_field' description: >- The custom fields for the purchase order object, added as user-defined data extensions, not included in the standard QuickBooks object. required: - id - objectType - createdAt - updatedAt - revisionNumber - vendor - class - inventorySite - shipToEntity - documentTemplate - transactionDate - refNumber - vendorAddress - shippingAddress - terms - dueDate - expectedDate - shippingMethod - shipmentOrigin - totalAmount - currency - exchangeRate - totalAmountInHomeCurrency - isManuallyClosed - isFullyReceived - memo - vendorMessage - isQueuedForPrint - isQueuedForEmail - salesTaxCode - otherCustomField1 - otherCustomField2 - externalId - linkedTransactions - lines - lineGroups - customFields additionalProperties: false title: The Purchase Order object x-conductor-object-type: transaction summary: >- A purchase order represents a formal request for goods or services sent to a vendor. Since it is a non-posting transaction, it serves as a commitment to purchase but does not impact the company's financial statements. qbd_purchase_order_line: type: object properties: id: type: string description: >- The unique identifier assigned by QuickBooks to this purchase order line. This ID is unique across all transaction line types. example: 456DEF-1234567890 objectType: description: >- The type of object. This value is always `"qbd_purchase_order_line"`. example: qbd_purchase_order_line type: string const: qbd_purchase_order_line item: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- 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. example: id: 80000001-1234567890 fullName: Widget A sku: anyOf: - type: string - type: 'null' description: >- The purchase order line's stock keeping unit (SKU), which is sometimes the manufacturer's part number. example: MPN-123456 description: anyOf: - type: string - type: 'null' description: A description of this purchase order line. example: Office chairs - Herman Miller Aeron (Black) quantity: anyOf: - type: number - type: 'null' description: >- 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. example: 5 unitOfMeasure: anyOf: - type: string - type: 'null' description: >- 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. example: Each overrideUnitOfMeasureSet: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- 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. example: id: 80000001-1234567890 fullName: Volume Units rate: anyOf: - type: string - type: 'null' description: >- 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. example: '10.00' class: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- 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. example: id: 80000001-1234567890 fullName: Office Supplies amount: anyOf: - type: string - type: 'null' description: >- 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. example: '1000.00' inventorySiteLocation: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The specific location (e.g., bin or shelf) within the inventory site where the item associated with this purchase order line is stored. example: id: 80000001-1234567890 fullName: Aisle 3, Shelf B payee: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- 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). example: id: 80000001-1234567890 fullName: Acme Corporation serviceDate: anyOf: - type: string format: date - type: 'null' description: >- 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. example: 2024-03-15T00:00:00.000Z salesTaxCode: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- 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. example: id: 80000001-1234567890 fullName: Non receivedQuantity: anyOf: - type: number - type: 'null' description: >- The quantity that has been received against this purchase order line. example: 5 unbilledQuantity: anyOf: - type: number - type: 'null' description: The quantity that has not been billed for this purchase order line. example: 2 isBilled: anyOf: - type: boolean - type: 'null' description: Indicates whether this purchase order line has been billed. example: false isManuallyClosed: type: boolean description: >- 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. example: true otherCustomField1: anyOf: - type: string - type: 'null' description: >- 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. example: Special handling required otherCustomField2: anyOf: - type: string - type: 'null' description: >- 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. example: Always ship with a spare customFields: type: array items: $ref: '#/components/schemas/qbd_custom_field' description: >- The custom fields for the purchase order line object, added as user-defined data extensions, not included in the standard QuickBooks object. required: - id - objectType - item - sku - description - quantity - unitOfMeasure - overrideUnitOfMeasureSet - rate - class - amount - inventorySiteLocation - payee - serviceDate - salesTaxCode - receivedQuantity - unbilledQuantity - isBilled - isManuallyClosed - otherCustomField1 - otherCustomField2 - customFields additionalProperties: false title: The Purchase Order Line object x-conductor-object-type: nested qbd_purchase_order_line_group: type: object properties: id: type: string description: >- The unique identifier assigned by QuickBooks to this purchase order line group. This ID is unique across all transaction line types. example: 456DEF-1234567890 objectType: description: >- The type of object. This value is always `"qbd_purchase_order_line_group"`. example: qbd_purchase_order_line_group type: string const: qbd_purchase_order_line_group itemGroup: type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false description: >- 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. example: id: 80000001-1234567890 fullName: Office Supplies Bundle description: anyOf: - type: string - type: 'null' description: A description of this purchase order line group. example: Office supplies bundle quantity: anyOf: - type: number - type: 'null' description: >- 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. example: 5 unitOfMeasure: anyOf: - type: string - type: 'null' description: >- 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. example: Each overrideUnitOfMeasureSet: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- 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. example: id: 80000001-1234567890 fullName: Volume Units shouldPrintItemsInGroup: type: boolean description: >- Indicates whether the individual items in this purchase order line group and their separate amounts appear on printed forms. example: true totalAmount: type: string description: >- The total monetary amount of this purchase order line group, equivalent to the sum of the amounts in `lines`, represented as a decimal string. example: '1000.00' serviceDate: anyOf: - type: string format: date - type: 'null' description: >- 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. example: 2024-03-15T00:00:00.000Z lines: type: array items: $ref: '#/components/schemas/qbd_purchase_order_line' description: >- The purchase order line group's line items, each representing a single product or service ordered. customFields: type: array items: $ref: '#/components/schemas/qbd_custom_field' description: >- The custom fields for the purchase order line group object, added as user-defined data extensions, not included in the standard QuickBooks object. required: - id - objectType - itemGroup - description - quantity - unitOfMeasure - overrideUnitOfMeasureSet - shouldPrintItemsInGroup - totalAmount - serviceDate - lines - customFields additionalProperties: false title: The Purchase Order Line Group object x-conductor-object-type: nested qbd_receive_payment: type: object properties: id: type: string description: >- The unique identifier assigned by QuickBooks to this receive-payment. This ID is unique across all transaction types. example: 123ABC-1234567890 objectType: description: The type of object. This value is always `"qbd_receive_payment"`. example: qbd_receive_payment type: string const: qbd_receive_payment createdAt: type: string description: >- The date and time when this receive-payment 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. example: 2025-01-01T12:34:56.000Z updatedAt: type: string description: >- The date and time when this receive-payment 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. example: 2025-02-01T12:34:56.000Z revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of this receive-payment 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. example: '1721172183' customer: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The customer or customer-job to which the payment for this receive-payment is credited. example: id: 80000001-1234567890 fullName: Acme Corporation receivablesAccount: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The Accounts-Receivable (A/R) account to which this receive-payment is assigned, used to track the amount owed. If omitted, QuickBooks Desktop uses the default A/R account configured in the company file. **IMPORTANT**: If this receive-payment is linked to other transactions, this A/R account must match the `receivablesAccount` used in all linked transactions. example: id: 80000001-1234567890 fullName: Accounts-Receivable transactionDate: type: string format: date description: The date of this receive-payment, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-01' refNumber: anyOf: - type: string - type: 'null' description: >- The case-sensitive user-defined reference number for this receive-payment, 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. example: PAYMENT-1234 totalAmount: type: string description: >- The total monetary amount of this receive-payment, represented as a decimal string. example: '1000.00' currency: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The receive-payment's currency. For built-in currencies, the name and code are standard ISO 4217 international values. For user-defined currencies, all values are editable. example: id: 80000001-1234567890 fullName: USD exchangeRate: anyOf: - type: number - type: 'null' description: >- The market exchange rate between this receive-payment'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: 1.2345 totalAmountInHomeCurrency: anyOf: - type: string - type: 'null' description: >- The total monetary amount of this receive-payment converted to the home currency of the QuickBooks company file. Represented as a decimal string. example: '1234.56' paymentMethod: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The receive-payment's payment method (e.g., cash, check, credit card). example: id: 80000001-1234567890 fullName: Credit Card memo: anyOf: - type: string - type: 'null' description: >- A memo or note for this receive-payment that will be displayed at the beginning of reports containing details about this receive-payment. example: Payment received at store location - cash depositToAccount: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The account where the funds for this receive-payment will be or have been deposited. example: id: 80000001-1234567890 fullName: Undeposited Funds creditCardTransaction: anyOf: - $ref: '#/components/schemas/qbd_credit_card_transaction' - type: 'null' description: >- The credit card transaction data for this receive-payment's payment when using QuickBooks Merchant Services (QBMS). unusedPayment: anyOf: - type: string - type: 'null' description: >- The amount of this receive-payment that remains unapplied to any transactions. This occurs in two cases: (1) When the sum of `paymentAmount` amounts in `applyToTransactions` is less than `totalAmount`, leaving a portion of the payment unused, or (2) When a payment is received that equals the exact amount of an invoice, but credits or discounts are also applied, resulting in excess payment. example: '100.00' unusedCredits: anyOf: - type: string - type: 'null' description: >- The amount of credit that remains unused after applying credits to this receive-payment. This occurs when the `applyCredit.appliedAmount` specified for a credit memo (`applyCredit.creditMemoId`) in the `applyToTransactions` array is less than the total available credit amount for that credit memo. example: '100.00' externalId: anyOf: - type: string description: >- 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: 12345678-abcd-1234-abcd-1234567890ab - type: 'null' appliedToTransactions: type: array items: $ref: '#/components/schemas/qbd_target_transaction' description: The invoice(s) paid by this receive-payment. customFields: type: array items: $ref: '#/components/schemas/qbd_custom_field' description: >- The custom fields for the receive-payment object, added as user-defined data extensions, not included in the standard QuickBooks object. required: - id - objectType - createdAt - updatedAt - revisionNumber - customer - receivablesAccount - transactionDate - refNumber - totalAmount - currency - exchangeRate - totalAmountInHomeCurrency - paymentMethod - memo - depositToAccount - creditCardTransaction - unusedPayment - unusedCredits - externalId - appliedToTransactions - customFields additionalProperties: false title: The Receive-Payment object x-conductor-object-type: transaction summary: >- A receive-payment records when a payment is received from a customer *not* at the time of sale. It can be used for one or more of these purposes: (1) record a customer's payment against one or more invoices, (2) set a discount (e.g., for early payment), or (3) set a credit (e.g., from returned merchandise). Note: If full payment is received at the time of sale, use a sales receipt instead. qbd_report: type: object properties: objectType: type: string const: qbd_report description: The type of object. This value is always `"qbd_report"`. example: qbd_report category: type: string enum: - general_summary - general_detail - aging - budget_summary - job - time - custom_detail - custom_summary - payroll_detail - payroll_summary description: The report category. example: general_summary reportType: type: string enum: - balance_sheet_by_class - balance_sheet_previous_year_comparison - balance_sheet_standard - balance_sheet_summary - customer_balance_summary - expense_by_vendor_summary - income_by_customer_summary - inventory_stock_status_by_item - inventory_stock_status_by_vendor - income_tax_summary - inventory_valuation_summary - inventory_valuation_summary_by_site - lot_number_in_stock_by_site - physical_inventory_worksheet - profit_and_loss_by_class - profit_and_loss_by_job - profit_and_loss_previous_year_comparison - profit_and_loss_standard - profit_and_loss_ytd_comparison - purchase_by_item_summary - purchase_by_vendor_summary - sales_by_customer_summary - sales_by_item_summary - sales_by_sales_representative_summary - sales_tax_liability - sales_tax_revenue_summary - serial_number_in_stock_by_site - trial_balance - vendor_balance_summary - 1099_detail - audit_trail - balance_sheet_detail - check_detail - customer_balance_detail - deposit_detail - estimates_by_job - expense_by_vendor_detail - general_ledger - income_by_customer_detail - income_tax_detail - inventory_valuation_detail - job_progress_invoices_vs_estimates - journal - missing_checks - open_invoices - open_purchase_orders - open_purchase_orders_by_job - open_sales_order_by_customer - open_sales_order_by_item - pending_sales - profit_and_loss_detail - purchase_by_item_detail - purchase_by_vendor_detail - sales_by_customer_detail - sales_by_item_detail - sales_by_sales_representative_detail - transaction_detail_by_account - transaction_list_by_customer - transaction_list_by_date - transaction_list_by_vendor - unpaid_bills_detail - unbilled_costs_by_job - vendor_balance_detail - ap_aging_detail - ap_aging_summary - ar_aging_detail - ar_aging_summary - collections_report - balance_sheet_budget_overview - balance_sheet_budget_vs_actual - profit_and_loss_budget_overview - profit_and_loss_budget_performance - profit_and_loss_budget_vs_actual - item_estimates_vs_actuals - item_profitability - job_estimates_vs_actuals_detail - job_estimates_vs_actuals_summary - job_profitability_detail - job_profitability_summary - time_by_item - time_by_job_detail - time_by_job_summary - time_by_name - custom_transaction_detail - custom_summary - employee_state_taxes_detail - payroll_item_detail - payroll_review_detail - payroll_transaction_detail - payroll_transactions_by_payee - employee_earnings_summary - payroll_liability_balances - payroll_summary description: The report type. example: trial_balance title: anyOf: - type: string - type: 'null' description: The report title. example: Trial Balance subtitle: anyOf: - type: string - type: 'null' description: The report subtitle. example: As of February 1, 2025 basis: anyOf: - type: string enum: - accrual - cash - none - type: 'null' description: The accounting basis. example: accrual rowCount: anyOf: - type: number - type: 'null' description: The number of rows in the report. example: 7 columnCount: anyOf: - type: number - type: 'null' description: The number of columns in the report. example: 3 columnTitleRowCount: anyOf: - type: number - type: 'null' description: The number of title rows for the report columns. example: 2 columns: type: array items: type: object properties: columnId: type: string description: >- The report column identifier. QuickBooks Desktop numbers columns from left to right, starting at 1. Use this value to match row cells to columns. columnType: type: string description: >- The report column type, describing the business meaning of the column, such as `date`, `amount`, or `transaction_type`. dataType: anyOf: - type: string - type: 'null' description: >- The raw value data type for this column, such as `string`, `amount`, or `date`. This is `null` if QuickBooks Desktop does not provide a data type. titles: type: array items: type: object properties: rowNumber: type: number description: >- The one-based title row number. Reports can have multiple title rows. value: anyOf: - type: string - type: 'null' description: >- The title text for this column title row. This is `null` if QuickBooks Desktop does not provide one. required: - rowNumber - value additionalProperties: false description: The column title cells. Reports can use multiple title rows. required: - columnId - columnType - dataType - titles additionalProperties: false description: >- The report columns, in display order. Use each column's `columnId` to match row cells to columns. rows: type: array items: oneOf: - $ref: '#/components/schemas/qbd_report_text_row' - $ref: '#/components/schemas/qbd_report_data_row' - $ref: '#/components/schemas/qbd_report_subtotal_row' - $ref: '#/components/schemas/qbd_report_total_row' type: object discriminator: propertyName: kind mapping: text: '#/components/schemas/qbd_report_text_row' data: '#/components/schemas/qbd_report_data_row' subtotal: '#/components/schemas/qbd_report_subtotal_row' total: '#/components/schemas/qbd_report_total_row' description: >- The report rows, in display order. Rows can be text rows, detail data rows, subtotal rows, or total rows. required: - objectType - category - reportType - title - subtitle - basis - rowCount - columnCount - columnTitleRowCount - columns - rows additionalProperties: false title: The Report object x-conductor-object-type: other x-conductor-sidebar-group-name: Reports summary: >- A QuickBooks Desktop report result, including report metadata, column definitions, and ordered rows. qbd_report_text_row: type: object properties: kind: type: string const: text description: The row kind. This value is always `"text"`. rowNumber: type: number description: The one-based row number from the report. text: anyOf: - type: string - type: 'null' description: >- The text row value. Text rows are mainly used for headings. This is `null` if QuickBooks Desktop does not provide one. required: - kind - rowNumber - text additionalProperties: false title: Text row qbd_report_data_row: type: object properties: kind: type: string const: data description: The row kind. This value is always `"data"`. rowNumber: type: number description: The one-based row number from the report. rowDescriptor: anyOf: - type: object properties: type: anyOf: - type: string - type: 'null' description: >- The kind of row-level descriptor, such as `account`, `customer`, or `vendor`. This is `null` if QuickBooks Desktop does not provide one. value: anyOf: - type: string - type: 'null' description: >- The row-level descriptor value. This can differ from the first cell value and is `null` if QuickBooks Desktop does not provide one. required: - type - value additionalProperties: false - type: 'null' description: >- The row-level descriptor provided by QuickBooks Desktop. This is separate from the row's table values in `cells` and is `null` when QuickBooks Desktop does not provide one. cells: type: array items: type: object properties: columnId: type: string description: >- The column identifier for this cell. This matches a column's `columnId` and refers to the column's left-to-right position in the report. value: anyOf: - type: string - type: 'null' description: >- The cell value as a QuickBooks Desktop-formatted string. This is `null` if QuickBooks Desktop does not provide a value for the cell. dataType: anyOf: - type: string - type: 'null' description: >- The value data type for this cell. If QuickBooks Desktop omits the cell data type, this uses the matching column's `dataType` when available. required: - columnId - value - dataType additionalProperties: false description: >- The cells in this report row. Report rows are sparse, so cells appear only for columns where QuickBooks Desktop returned a value. required: - kind - rowNumber - rowDescriptor - cells additionalProperties: false title: Data row qbd_report_subtotal_row: type: object properties: kind: type: string const: subtotal description: The row kind. This value is always `"subtotal"`. rowNumber: type: number description: The one-based row number from the report. rowDescriptor: anyOf: - type: object properties: type: anyOf: - type: string - type: 'null' description: >- The kind of row-level descriptor, such as `account`, `customer`, or `vendor`. This is `null` if QuickBooks Desktop does not provide one. value: anyOf: - type: string - type: 'null' description: >- The row-level descriptor value. This can differ from the first cell value and is `null` if QuickBooks Desktop does not provide one. required: - type - value additionalProperties: false - type: 'null' description: >- The row-level descriptor provided by QuickBooks Desktop. This is separate from the row's table values in `cells` and is `null` when QuickBooks Desktop does not provide one. cells: type: array items: type: object properties: columnId: type: string description: >- The column identifier for this cell. This matches a column's `columnId` and refers to the column's left-to-right position in the report. value: anyOf: - type: string - type: 'null' description: >- The cell value as a QuickBooks Desktop-formatted string. This is `null` if QuickBooks Desktop does not provide a value for the cell. dataType: anyOf: - type: string - type: 'null' description: >- The value data type for this cell. If QuickBooks Desktop omits the cell data type, this uses the matching column's `dataType` when available. required: - columnId - value - dataType additionalProperties: false description: >- The cells in this report row. Report rows are sparse, so cells appear only for columns where QuickBooks Desktop returned a value. required: - kind - rowNumber - rowDescriptor - cells additionalProperties: false title: Subtotal row qbd_report_total_row: type: object properties: kind: type: string const: total description: The row kind. This value is always `"total"`. rowNumber: type: number description: The one-based row number from the report. rowDescriptor: anyOf: - type: object properties: type: anyOf: - type: string - type: 'null' description: >- The kind of row-level descriptor, such as `account`, `customer`, or `vendor`. This is `null` if QuickBooks Desktop does not provide one. value: anyOf: - type: string - type: 'null' description: >- The row-level descriptor value. This can differ from the first cell value and is `null` if QuickBooks Desktop does not provide one. required: - type - value additionalProperties: false - type: 'null' description: >- The row-level descriptor provided by QuickBooks Desktop. This is separate from the row's table values in `cells` and is `null` when QuickBooks Desktop does not provide one. cells: type: array items: type: object properties: columnId: type: string description: >- The column identifier for this cell. This matches a column's `columnId` and refers to the column's left-to-right position in the report. value: anyOf: - type: string - type: 'null' description: >- The cell value as a QuickBooks Desktop-formatted string. This is `null` if QuickBooks Desktop does not provide a value for the cell. dataType: anyOf: - type: string - type: 'null' description: >- The value data type for this cell. If QuickBooks Desktop omits the cell data type, this uses the matching column's `dataType` when available. required: - columnId - value - dataType additionalProperties: false description: >- The cells in this report row. Report rows are sparse, so cells appear only for columns where QuickBooks Desktop returned a value. required: - kind - rowNumber - rowDescriptor - cells additionalProperties: false title: Total row qbd_sales_order: type: object properties: id: type: string description: >- The unique identifier assigned by QuickBooks to this sales order. This ID is unique across all transaction types. example: 123ABC-1234567890 objectType: description: The type of object. This value is always `"qbd_sales_order"`. example: qbd_sales_order type: string const: qbd_sales_order createdAt: type: string description: >- The date and time when this sales 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. example: 2025-01-01T12:34:56.000Z updatedAt: type: string description: >- The date and time when this sales 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. example: 2025-02-01T12:34:56.000Z revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of this sales 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. example: '1721172183' customer: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: The customer or customer-job associated with this sales order. example: id: 80000001-1234567890 fullName: Acme Corporation class: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The sales 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 sales order's line items unless overridden at the line item level. example: id: 80000001-1234567890 fullName: Online Sales documentTemplate: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The predefined template in QuickBooks that determines the layout and formatting for this sales order when printed or displayed. example: id: 80000001-1234567890 fullName: Sales Order Template transactionDate: type: string format: date description: The date of this sales order, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-01' refNumber: anyOf: - type: string - type: 'null' description: >- The case-sensitive user-defined reference number for this sales 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. example: SO-1234 billingAddress: anyOf: - $ref: '#/components/schemas/qbd_address' - type: 'null' description: The sales order's billing address. shippingAddress: anyOf: - $ref: '#/components/schemas/qbd_address' - type: 'null' description: The sales order's shipping address. purchaseOrderNumber: anyOf: - type: string - type: 'null' description: >- The customer's Purchase Order (PO) number associated with this sales order. This field is often used to cross-reference the sales order with the customer's purchasing system. example: PO-1234 terms: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The sales order's payment terms, defining when payment is due and any applicable discounts. example: id: 80000001-1234567890 fullName: Net 30 dueDate: anyOf: - type: string format: date - type: 'null' description: >- The date by which this sales order must be paid, in ISO 8601 format (YYYY-MM-DD). example: 2024-10-31T00:00:00.000Z salesRepresentative: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The sales order's sales representative. Sales representatives can be employees, vendors, or other names in QuickBooks. example: id: 80000001-1234567890 fullName: Jane Doe shipmentOrigin: anyOf: - type: string - type: 'null' description: >- The origin location from where the product associated with this sales 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. example: San Francisco, CA shippingDate: anyOf: - type: string format: date - type: 'null' description: >- The date when the products or services for this sales order were shipped or are expected to be shipped, in ISO 8601 format (YYYY-MM-DD). example: 2024-10-01T00:00:00.000Z shippingMethod: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The shipping method used for this sales order, such as standard mail or overnight delivery. example: id: 80000001-1234567890 fullName: FedEx Ground subtotal: type: string description: >- The subtotal of this sales order, which is the sum of all sales order lines before taxes and payments are applied, represented as a decimal string. example: '1000.00' salesTaxItem: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The sales-tax item used to calculate the actual tax amount for this sales order's transactions by applying a specific tax rate collected for a single tax agency. Unlike `salesTaxCode`, which only indicates general taxability, this field drives the actual tax calculation and reporting. example: id: 80000001-1234567890 fullName: State Sales Tax salesTaxPercentage: anyOf: - type: string - type: 'null' description: >- The sales tax percentage applied to this sales order, represented as a decimal string. example: '0.07' salesTaxTotal: anyOf: - type: string - type: 'null' description: >- The total amount of sales tax charged for this sales order, represented as a decimal string. example: '10.00' totalAmount: type: string description: >- The total monetary amount of this sales order, equivalent to the sum of the amounts in `lines` and `lineGroups`, represented as a decimal string. example: '1000.00' currency: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The sales 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. example: id: 80000001-1234567890 fullName: USD exchangeRate: anyOf: - type: number - type: 'null' description: >- The market exchange rate between this sales 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: 1.2345 totalAmountInHomeCurrency: anyOf: - type: string - type: 'null' description: >- The total monetary amount of this sales order converted to the home currency of the QuickBooks company file. Represented as a decimal string. example: '1234.56' isManuallyClosed: type: boolean description: >- Indicates whether this sales order has been manually marked as closed, even if it has not been invoiced. example: true isFullyInvoiced: anyOf: - type: boolean - type: 'null' description: Indicates whether all items in this sales order have been invoiced. example: false memo: anyOf: - type: string - type: 'null' description: A memo or note for this sales order. example: Customer requested rush delivery customerMessage: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: The message to display to the customer on the sales order. example: id: 80000001-1234567890 fullName: Thank you for your business! isQueuedForPrint: anyOf: - type: boolean description: >- Indicates whether this sales order is included in the queue of documents for QuickBooks to print. example: true - type: 'null' isQueuedForEmail: anyOf: - type: boolean - type: 'null' description: >- Indicates whether this sales order is included in the queue of documents for QuickBooks to email to the customer. example: true salesTaxCode: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The sales-tax code for this sales order, determining whether it is taxable or non-taxable. This can be overridden at the transaction-line level. 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. example: id: 80000001-1234567890 fullName: Non otherCustomField: anyOf: - type: string - type: 'null' description: >- A built-in custom field for additional information specific to this sales order. Unlike the user-defined fields in the `customFields` array, this is a standard QuickBooks field that exists for all sales orders for convenience. Developers often use this field for tracking information that doesn't fit into other standard QuickBooks fields. Unlike `otherCustomField1` and `otherCustomField2`, which are line item fields, this exists at the transaction level. Hidden by default in the QuickBooks UI. example: Special handling required externalId: anyOf: - type: string description: >- 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: 12345678-abcd-1234-abcd-1234567890ab - type: 'null' linkedTransactions: type: array items: $ref: '#/components/schemas/qbd_linked_transaction' description: >- The sales 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 sales orders to receive this field because it is not returned by default. lines: type: array items: $ref: '#/components/schemas/qbd_sales_order_line' description: >- The sales order's line items, each representing a single product or service ordered. lineGroups: type: array items: $ref: '#/components/schemas/qbd_sales_order_line_group' description: >- The sales order's line item groups, each representing a predefined set of related items. customFields: type: array items: $ref: '#/components/schemas/qbd_custom_field' description: >- The custom fields for the sales order object, added as user-defined data extensions, not included in the standard QuickBooks object. salesChannelName: anyOf: - type: string enum: - blank - ecommerce - type: 'null' description: The type of the sales channel for this sales order. example: ecommerce salesStoreName: anyOf: - type: string - type: 'null' description: The name of the sales store for this sales order. example: Store 1 salesStoreType: anyOf: - type: string - type: 'null' description: The type of the sales store for this sales order. example: Retail required: - id - objectType - createdAt - updatedAt - revisionNumber - customer - class - documentTemplate - transactionDate - refNumber - billingAddress - shippingAddress - purchaseOrderNumber - terms - dueDate - salesRepresentative - shipmentOrigin - shippingDate - shippingMethod - subtotal - salesTaxItem - salesTaxPercentage - salesTaxTotal - totalAmount - currency - exchangeRate - totalAmountInHomeCurrency - isManuallyClosed - isFullyInvoiced - memo - customerMessage - isQueuedForPrint - isQueuedForEmail - salesTaxCode - otherCustomField - externalId - linkedTransactions - lines - lineGroups - customFields - salesChannelName - salesStoreName - salesStoreType additionalProperties: false title: The Sales Order object x-conductor-object-type: transaction summary: >- A sales order tracks inventory that is on back order for a customer. In QuickBooks, sales orders and invoices use similar fields, and a sales order can be "converted" into an invoice (by linking the invoice to the sales order) once the inventory is in stock. qbd_sales_order_line: type: object properties: id: type: string description: >- The unique identifier assigned by QuickBooks to this sales order line. This ID is unique across all transaction line types. example: 456DEF-1234567890 objectType: description: The type of object. This value is always `"qbd_sales_order_line"`. example: qbd_sales_order_line type: string const: qbd_sales_order_line item: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The item associated with this sales 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. example: id: 80000001-1234567890 fullName: Widget A description: anyOf: - type: string - type: 'null' description: A description of this sales order line. example: Widget Model X100 - Blue quantity: anyOf: - type: number - type: 'null' description: >- The quantity of the item associated with this sales order line. This field cannot be cleared. **NOTE**: Do not use this field if the associated item is a discount item. example: 5 unitOfMeasure: anyOf: - type: string - type: 'null' description: >- The unit-of-measure used for the `quantity` in this sales order line. Must be a valid unit within the item's available units of measure. example: Each overrideUnitOfMeasureSet: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- Specifies an alternative unit-of-measure set when updating this sales 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. example: id: 80000001-1234567890 fullName: Volume Units rate: anyOf: - type: string - type: 'null' description: >- The price per unit for this sales 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. example: '10.00' ratePercent: anyOf: - type: string - type: 'null' description: >- The price of this sales order line expressed as a percentage. Typically used for discount or markup items. example: '10.5' class: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The sales 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 sales order lines unless overridden here, at the transaction line level. example: id: 80000001-1234567890 fullName: West-Coast:Sales amount: anyOf: - type: string - type: 'null' description: >- The monetary amount of this sales 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. example: '1000.00' inventorySite: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The site location where inventory for the item associated with this sales order line is stored. example: id: 80000001-1234567890 fullName: Main Warehouse inventorySiteLocation: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The specific location (e.g., bin or shelf) within the inventory site where the item associated with this sales order line is stored. example: id: 80000001-1234567890 fullName: Aisle 3, Shelf B serialNumber: anyOf: - type: string - type: 'null' description: >- The serial number of the item associated with this sales order line. This is used for tracking individual units of serialized inventory items. example: SN1234567890 lotNumber: anyOf: - type: string - type: 'null' description: >- The lot number of the item associated with this sales order line. Used for tracking groups of inventory items that are purchased or manufactured together. example: LOT2023-001 expirationDate: anyOf: - type: string format: date - type: 'null' description: >- The expiration date for the serial number or lot number of the item associated with this sales order line, in ISO 8601 format (YYYY-MM-DD). This is particularly relevant for perishable or time-sensitive inventory items. Note that this field is only supported on QuickBooks Desktop 2023 or later. example: 2025-12-31T00:00:00.000Z salesTaxCode: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The sales-tax code for this sales 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. example: id: 80000001-1234567890 fullName: Non quantityInvoiced: anyOf: - type: number - type: 'null' description: >- The number of units of this sales order line's `quantity` that have been invoiced. example: 5 isManuallyClosed: type: boolean description: >- Indicates whether this sales order line has been manually marked as closed, even if it has not been invoiced. example: true otherCustomField1: anyOf: - type: string - type: 'null' description: >- A built-in custom field for additional information specific to this sales order line. Unlike the user-defined fields in the `customFields` array, this is a standard QuickBooks field that exists for all sales 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. example: Special handling required otherCustomField2: anyOf: - type: string - type: 'null' description: >- A second built-in custom field for additional information specific to this sales order line. Unlike the user-defined fields in the `customFields` array, this is a standard QuickBooks field that exists for all sales 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. example: Always ship with a spare customFields: type: array items: $ref: '#/components/schemas/qbd_custom_field' description: >- The custom fields for the sales order line object, added as user-defined data extensions, not included in the standard QuickBooks object. required: - id - objectType - item - description - quantity - unitOfMeasure - overrideUnitOfMeasureSet - rate - ratePercent - class - amount - inventorySite - inventorySiteLocation - serialNumber - lotNumber - expirationDate - salesTaxCode - quantityInvoiced - isManuallyClosed - otherCustomField1 - otherCustomField2 - customFields additionalProperties: false title: The Sales Order Line object x-conductor-object-type: nested qbd_sales_order_line_group: type: object properties: id: type: string description: >- The unique identifier assigned by QuickBooks to this sales order line group. This ID is unique across all transaction line types. example: 456DEF-1234567890 objectType: description: >- The type of object. This value is always `"qbd_sales_order_line_group"`. example: qbd_sales_order_line_group type: string const: qbd_sales_order_line_group itemGroup: type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false description: >- The sales order line group's item group, representing a predefined set of items bundled because they are commonly purchased together or grouped for faster entry. example: id: 80000001-1234567890 fullName: Office Supplies Bundle description: anyOf: - type: string - type: 'null' description: A description of this sales order line group. example: Service Bundle 1 quantity: anyOf: - type: number - type: 'null' description: >- The quantity of the item group associated with this sales order line group. This field cannot be cleared. **NOTE**: Do not use this field if the associated item group is a discount item group. example: 5 unitOfMeasure: anyOf: - type: string - type: 'null' description: >- The unit-of-measure used for the `quantity` in this sales order line group. Must be a valid unit within the item's available units of measure. example: Each overrideUnitOfMeasureSet: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- Specifies an alternative unit-of-measure set when updating this sales 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. example: id: 80000001-1234567890 fullName: Volume Units shouldPrintItemsInGroup: type: boolean description: >- Indicates whether the individual items in this sales order line group and their separate amounts appear on printed forms. example: true totalAmount: type: string description: >- The total monetary amount of this sales order line group, equivalent to the sum of the amounts in `lines`, represented as a decimal string. example: '1000.00' lines: type: array items: $ref: '#/components/schemas/qbd_sales_order_line' description: >- The sales order line group's line items, each representing a single product or service ordered. customFields: type: array items: $ref: '#/components/schemas/qbd_custom_field' description: >- The custom fields for the sales order line group object, added as user-defined data extensions, not included in the standard QuickBooks object. required: - id - objectType - itemGroup - description - quantity - unitOfMeasure - overrideUnitOfMeasureSet - shouldPrintItemsInGroup - totalAmount - lines - customFields additionalProperties: false title: The Sales Order Line Group object x-conductor-object-type: nested qbd_sales_receipt: type: object properties: id: type: string description: >- The unique identifier assigned by QuickBooks to this sales receipt. This ID is unique across all transaction types. example: 123ABC-1234567890 objectType: description: The type of object. This value is always `"qbd_sales_receipt"`. example: qbd_sales_receipt type: string const: qbd_sales_receipt createdAt: type: string description: >- The date and time when this sales receipt 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. example: 2025-01-01T12:34:56.000Z updatedAt: type: string description: >- The date and time when this sales receipt 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. example: 2025-02-01T12:34:56.000Z revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of this sales receipt 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. example: '1721172183' customer: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The customer or customer-job to which the payment for this sales receipt is credited. example: id: 80000001-1234567890 fullName: Acme Corporation class: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The sales receipt'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 sales receipt's line items unless overridden at the line item level. example: id: 80000001-1234567890 fullName: Retail Sales documentTemplate: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The predefined template in QuickBooks that determines the layout and formatting for this sales receipt when printed or displayed. example: id: 80000001-1234567890 fullName: Sales Receipt Template transactionDate: type: string format: date description: The date of this sales receipt, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-01' refNumber: anyOf: - type: string - type: 'null' description: >- The case-sensitive user-defined reference number for this sales receipt, 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. example: RECEIPT-1234 billingAddress: anyOf: - $ref: '#/components/schemas/qbd_address' - type: 'null' description: The sales receipt's billing address. shippingAddress: anyOf: - $ref: '#/components/schemas/qbd_address' - type: 'null' description: The sales receipt's shipping address. isPending: anyOf: - type: boolean - type: 'null' description: Indicates whether this sales receipt has not been completed. example: false checkNumber: anyOf: - type: string - type: 'null' description: The check number of a check received for this sales receipt. example: '1234567890' paymentMethod: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: The sales receipt's payment method (e.g., cash, check, credit card). example: id: 80000001-1234567890 fullName: Credit Card dueDate: anyOf: - type: string format: date - type: 'null' description: >- The date by which this sales receipt must be paid, in ISO 8601 format (YYYY-MM-DD). **NOTE**: For sales receipts, this field is often `null` because sales receipts are generally used for point-of-sale payments, where full payment is received at the time of purchase. example: 2024-10-31T00:00:00.000Z salesRepresentative: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The sales receipt's sales representative. Sales representatives can be employees, vendors, or other names in QuickBooks. example: id: 80000001-1234567890 fullName: Jane Doe shippingDate: anyOf: - type: string format: date - type: 'null' description: >- The date when the products or services for this sales receipt were shipped or are expected to be shipped, in ISO 8601 format (YYYY-MM-DD). example: 2024-10-01T00:00:00.000Z shippingMethod: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The shipping method used for this sales receipt, such as standard mail or overnight delivery. example: id: 80000001-1234567890 fullName: FedEx Ground shipmentOrigin: anyOf: - type: string - type: 'null' description: >- The origin location from where the product associated with this sales receipt 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. example: San Francisco, CA subtotal: type: string description: >- The subtotal of this sales receipt, which is the sum of all sales receipt lines before taxes and payments are applied, represented as a decimal string. example: '1000.00' salesTaxItem: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The sales-tax item used to calculate the actual tax amount for this sales receipt's transactions by applying a specific tax rate collected for a single tax agency. Unlike `salesTaxCode`, which only indicates general taxability, this field drives the actual tax calculation and reporting. For sales receipts, while using this field to specify a single tax item/group that applies uniformly is recommended, complex tax scenarios may require alternative approaches. In such cases, you can set this field to a 0% tax item (conventionally named "Tax Calculated On Invoice") and handle tax calculations through line items instead. When using line items for taxes, note that only individual tax items (not tax groups) can be used, subtotals can help apply a tax to multiple items but only the first tax line after a subtotal is calculated automatically (subsequent tax lines require manual amounts), and the rate column will always display the actual tax amount rather than the rate percentage. example: id: 80000001-1234567890 fullName: State Sales Tax salesTaxPercentage: anyOf: - type: string - type: 'null' description: >- The sales tax percentage applied to this sales receipt, represented as a decimal string. example: '0.07' salesTaxTotal: anyOf: - type: string - type: 'null' description: >- The total amount of sales tax charged for this sales receipt, represented as a decimal string. example: '10.00' totalAmount: type: string description: >- The total monetary amount of this sales receipt, equivalent to the sum of the amounts in `lines` and `lineGroups`, represented as a decimal string. example: '1000.00' currency: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The sales receipt's currency. For built-in currencies, the name and code are standard ISO 4217 international values. For user-defined currencies, all values are editable. example: id: 80000001-1234567890 fullName: USD exchangeRate: anyOf: - type: number - type: 'null' description: >- The market exchange rate between this sales receipt'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: 1.2345 totalAmountInHomeCurrency: anyOf: - type: string - type: 'null' description: >- The total monetary amount of this sales receipt converted to the home currency of the QuickBooks company file. Represented as a decimal string. example: '1234.56' memo: anyOf: - type: string - type: 'null' description: >- A memo or note for this sales receipt that appears in reports, but not on the sales receipt. example: Payment received at store location - cash customerMessage: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: The message to display to the customer on the sales receipt. example: id: 80000001-1234567890 fullName: Thank you for your business! isQueuedForPrint: anyOf: - type: boolean description: >- Indicates whether this sales receipt is included in the queue of documents for QuickBooks to print. example: true - type: 'null' isQueuedForEmail: anyOf: - type: boolean - type: 'null' description: >- Indicates whether this sales receipt is included in the queue of documents for QuickBooks to email to the customer. example: true salesTaxCode: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The sales-tax code for this sales receipt, determining whether it is taxable or non-taxable. This can be overridden at the transaction-line level. 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. example: id: 80000001-1234567890 fullName: Non depositToAccount: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The account where the funds for this sales receipt will be or have been deposited. example: id: 80000001-1234567890 fullName: Undeposited Funds creditCardTransaction: anyOf: - $ref: '#/components/schemas/qbd_credit_card_transaction' - type: 'null' description: >- The credit card transaction data for this sales receipt's payment when using QuickBooks Merchant Services (QBMS). otherCustomField: anyOf: - type: string - type: 'null' description: >- A built-in custom field for additional information specific to this sales receipt. Unlike the user-defined fields in the `customFields` array, this is a standard QuickBooks field that exists for all sales receipts for convenience. Developers often use this field for tracking information that doesn't fit into other standard QuickBooks fields. Unlike `otherCustomField1` and `otherCustomField2`, which are line item fields, this exists at the transaction level. Hidden by default in the QuickBooks UI. example: Special handling required externalId: anyOf: - type: string description: >- 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: 12345678-abcd-1234-abcd-1234567890ab - type: 'null' lines: type: array items: $ref: '#/components/schemas/qbd_sales_receipt_line' description: >- The sales receipt's line items, each representing a single product or service sold. lineGroups: type: array items: $ref: '#/components/schemas/qbd_sales_receipt_line_group' description: >- The sales receipt's line item groups, each representing a predefined set of related items. customFields: type: array items: $ref: '#/components/schemas/qbd_custom_field' description: >- The custom fields for the sales receipt object, added as user-defined data extensions, not included in the standard QuickBooks object. required: - id - objectType - createdAt - updatedAt - revisionNumber - customer - class - documentTemplate - transactionDate - refNumber - billingAddress - shippingAddress - isPending - checkNumber - paymentMethod - dueDate - salesRepresentative - shippingDate - shippingMethod - shipmentOrigin - subtotal - salesTaxItem - salesTaxPercentage - salesTaxTotal - totalAmount - currency - exchangeRate - totalAmountInHomeCurrency - memo - customerMessage - isQueuedForPrint - isQueuedForEmail - salesTaxCode - depositToAccount - creditCardTransaction - otherCustomField - externalId - lines - lineGroups - customFields additionalProperties: false title: The Sales Receipt object x-conductor-object-type: transaction summary: >- A sales receipt records a sale where complete payment is received at the time of the transaction, whether by cash, check, or credit card. It combines the sale and payment into a single transaction. For situations requiring partial or delayed payments, use an invoice with receive-payments instead. qbd_sales_receipt_line: type: object properties: id: type: string description: >- The unique identifier assigned by QuickBooks to this sales receipt line. This ID is unique across all transaction line types. example: 456DEF-1234567890 objectType: description: The type of object. This value is always `"qbd_sales_receipt_line"`. example: qbd_sales_receipt_line type: string const: qbd_sales_receipt_line item: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The item associated with this sales receipt 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. example: id: 80000001-1234567890 fullName: Widget A description: anyOf: - type: string - type: 'null' description: A description of this sales receipt line. example: New office chair quantity: anyOf: - type: number - type: 'null' description: >- The quantity of the item associated with this sales receipt line. This field cannot be cleared. **NOTE**: Do not use this field if the associated item is a discount item. example: 5 unitOfMeasure: anyOf: - type: string - type: 'null' description: >- The unit-of-measure used for the `quantity` in this sales receipt line. Must be a valid unit within the item's available units of measure. example: Each overrideUnitOfMeasureSet: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- Specifies an alternative unit-of-measure set when updating this sales receipt 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. example: id: 80000001-1234567890 fullName: Volume Units rate: anyOf: - type: string - type: 'null' description: >- The price per unit for this sales receipt 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. example: '10.00' ratePercent: anyOf: - type: string - type: 'null' description: >- The price of this sales receipt line expressed as a percentage. Typically used for discount or markup items. example: '10.5' class: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The sales receipt 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 sales receipt lines unless overridden here, at the transaction line level. example: id: 80000001-1234567890 fullName: Supplies:Furniture amount: anyOf: - type: string - type: 'null' description: >- The monetary amount of this sales receipt 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. example: '1000.00' inventorySite: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The site location where inventory for the item associated with this sales receipt line is stored. example: id: 80000001-1234567890 fullName: Main Warehouse inventorySiteLocation: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The specific location (e.g., bin or shelf) within the inventory site where the item associated with this sales receipt line is stored. example: id: 80000001-1234567890 fullName: Aisle 3, Shelf B serialNumber: anyOf: - type: string - type: 'null' description: >- The serial number of the item associated with this sales receipt line. This is used for tracking individual units of serialized inventory items. example: SN1234567890 lotNumber: anyOf: - type: string - type: 'null' description: >- The lot number of the item associated with this sales receipt line. Used for tracking groups of inventory items that are purchased or manufactured together. example: LOT2023-001 expirationDate: anyOf: - type: string format: date - type: 'null' description: >- The expiration date for the serial number or lot number of the item associated with this sales receipt line, in ISO 8601 format (YYYY-MM-DD). This is particularly relevant for perishable or time-sensitive inventory items. Note that this field is only supported on QuickBooks Desktop 2023 or later. example: 2025-12-31T00:00:00.000Z serviceDate: anyOf: - type: string format: date - type: 'null' description: >- The date on which the service for this sales receipt line was or will be performed, in ISO 8601 format (YYYY-MM-DD). This is particularly relevant for service items. example: 2024-03-15T00:00:00.000Z salesTaxCode: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The sales-tax code for this sales receipt 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. example: id: 80000001-1234567890 fullName: Non otherCustomField1: anyOf: - type: string - type: 'null' description: >- A built-in custom field for additional information specific to this sales receipt line. Unlike the user-defined fields in the `customFields` array, this is a standard QuickBooks field that exists for all sales receipt 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. example: Special handling required otherCustomField2: anyOf: - type: string - type: 'null' description: >- A second built-in custom field for additional information specific to this sales receipt line. Unlike the user-defined fields in the `customFields` array, this is a standard QuickBooks field that exists for all sales receipt 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. example: Always ship with a spare creditCardTransaction: anyOf: - $ref: '#/components/schemas/qbd_credit_card_transaction' - type: 'null' description: >- The credit card transaction data for this sales receipt line's payment when using QuickBooks Merchant Services (QBMS). customFields: type: array items: $ref: '#/components/schemas/qbd_custom_field' description: >- The custom fields for the sales receipt line object, added as user-defined data extensions, not included in the standard QuickBooks object. required: - id - objectType - item - description - quantity - unitOfMeasure - overrideUnitOfMeasureSet - rate - ratePercent - class - amount - inventorySite - inventorySiteLocation - serialNumber - lotNumber - expirationDate - serviceDate - salesTaxCode - otherCustomField1 - otherCustomField2 - creditCardTransaction - customFields additionalProperties: false title: The Sales Receipt Line object x-conductor-object-type: nested qbd_sales_receipt_line_group: type: object properties: id: type: string description: >- The unique identifier assigned by QuickBooks to this sales receipt line group. This ID is unique across all transaction line types. example: 456DEF-1234567890 objectType: description: >- The type of object. This value is always `"qbd_sales_receipt_line_group"`. example: qbd_sales_receipt_line_group type: string const: qbd_sales_receipt_line_group itemGroup: type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false description: >- The sales receipt line group's item group, representing a predefined set of items bundled because they are commonly purchased together or grouped for faster entry. example: id: 80000001-1234567890 fullName: Office Supplies Bundle description: anyOf: - type: string - type: 'null' description: A description of this sales receipt line group. example: Standard widget bulk package quantity: anyOf: - type: number - type: 'null' description: >- The quantity of the item group associated with this sales receipt line group. This field cannot be cleared. **NOTE**: Do not use this field if the associated item group is a discount item group. example: 5 unitOfMeasure: anyOf: - type: string - type: 'null' description: >- The unit-of-measure used for the `quantity` in this sales receipt line group. Must be a valid unit within the item's available units of measure. example: Each overrideUnitOfMeasureSet: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- Specifies an alternative unit-of-measure set when updating this sales receipt 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. example: id: 80000001-1234567890 fullName: Volume Units shouldPrintItemsInGroup: type: boolean description: >- Indicates whether the individual items in this sales receipt line group and their separate amounts appear on printed forms. example: true totalAmount: type: string description: >- The total monetary amount of this sales receipt line group, equivalent to the sum of the amounts in `lines`, represented as a decimal string. example: '1000.00' serviceDate: anyOf: - type: string format: date - type: 'null' description: >- The date on which the service for this sales receipt line group was or will be performed, in ISO 8601 format (YYYY-MM-DD). This is particularly relevant for service items. example: 2024-03-15T00:00:00.000Z lines: type: array items: $ref: '#/components/schemas/qbd_sales_receipt_line' description: >- The sales receipt line group's line items, each representing a single product or service sold. customFields: type: array items: $ref: '#/components/schemas/qbd_custom_field' description: >- The custom fields for the sales receipt line group object, added as user-defined data extensions, not included in the standard QuickBooks object. required: - id - objectType - itemGroup - description - quantity - unitOfMeasure - overrideUnitOfMeasureSet - shouldPrintItemsInGroup - totalAmount - serviceDate - lines - customFields additionalProperties: false title: The Sales Receipt Line Group object x-conductor-object-type: nested qbd_sales_representative: type: object properties: id: type: string description: >- The unique identifier assigned by QuickBooks to this sales representative. This ID is unique across all sales representatives but not across different QuickBooks object types. example: 80000001-1234567890 objectType: description: >- The type of object. This value is always `"qbd_sales_representative"`. example: qbd_sales_representative type: string const: qbd_sales_representative createdAt: type: string description: >- The date and time when this sales representative 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. example: 2025-01-01T12:34:56.000Z updatedAt: type: string description: >- The date and time when this sales representative 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. example: 2025-02-01T12:34:56.000Z revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of this sales representative 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. example: '1721172183' initial: type: string description: The initials of this sales representative's name. example: JD isActive: type: boolean description: >- Indicates whether this sales representative is active. Inactive objects are typically hidden from views and reports in QuickBooks. Defaults to `true`. example: true entity: type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false description: >- The sales representative's corresponding person entity in QuickBooks, stored as either an employee, vendor, or other-name entry. example: id: 80000001-1234567890 fullName: John Doe required: - id - objectType - createdAt - updatedAt - revisionNumber - initial - isActive - entity additionalProperties: false title: The Sales Representative object x-conductor-object-type: other summary: >- A sales representative is a person who can be assigned to sales transactions in QuickBooks Desktop. The sales representative corresponds to a separate employee, vendor, or other-name entity in QuickBooks. qbd_sales_tax_code: type: object properties: id: type: string description: >- The unique identifier assigned by QuickBooks to this sales-tax code. This ID is unique across all sales-tax codes but not across different QuickBooks object types. example: 80000001-1234567890 objectType: description: The type of object. This value is always `"qbd_sales_tax_code"`. example: qbd_sales_tax_code type: string const: qbd_sales_tax_code createdAt: type: string description: >- The date and time when this sales-tax code 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. example: 2025-01-01T12:34:56.000Z updatedAt: type: string description: >- The date and time when this sales-tax code 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. example: 2025-02-01T12:34:56.000Z revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of this sales-tax code 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. example: '1721172183' name: type: string description: >- The case-insensitive unique name of this sales-tax code, unique across all sales-tax codes. This short name will appear on sales forms to identify the tax status of an item. **NOTE**: Sales-tax codes do not have a `fullName` field because they are not hierarchical objects, which is why `name` is unique for them but not for objects that have parents. example: Tax isActive: type: boolean description: >- Indicates whether this sales-tax code is active. Inactive objects are typically hidden from views and reports in QuickBooks. Defaults to `true`. example: true isTaxable: type: boolean description: >- Indicates whether this sales-tax code is tracking taxable sales. This field cannot be modified once the sales-tax code has been used in a transaction. example: true description: anyOf: - type: string - type: 'null' description: A description of this sales-tax code. example: Standard tax rate for California salesTaxItem: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The sales-tax item used to calculate the actual tax amount for this sales-tax code's transactions by applying a specific tax rate collected for a single tax agency. Unlike `salesTaxCode`, which only indicates general taxability, this field drives the actual tax calculation and reporting. example: id: 80000001-1234567890 fullName: State Sales Tax required: - id - objectType - createdAt - updatedAt - revisionNumber - name - isActive - isTaxable - description - salesTaxItem additionalProperties: false title: The Sales-Tax Code object x-conductor-object-type: other summary: >- A sales tax code helps categorize items on a sales form as taxable or non-taxable, detailing reasons and associating tax codes with customers, items, or transactions. qbd_sales_tax_group_item: type: object properties: id: type: string description: >- The unique identifier assigned by QuickBooks to this sales-tax group item. This ID is unique across all sales-tax group items but not across different QuickBooks object types. example: 80000001-1234567890 objectType: description: >- The type of object. This value is always `"qbd_sales_tax_group_item"`. example: qbd_sales_tax_group_item type: string const: qbd_sales_tax_group_item createdAt: type: string description: >- The date and time when this sales-tax group item 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. example: 2025-01-01T12:34:56.000Z updatedAt: type: string description: >- The date and time when this sales-tax group item 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. example: 2025-02-01T12:34:56.000Z revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of this sales-tax group item 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. example: '1721172183' name: type: string description: >- The case-insensitive unique name of this sales-tax group item, unique across all sales-tax group items. **NOTE**: Sales-tax group items do not have a `fullName` field because they are not hierarchical objects, which is why `name` is unique for them but not for objects that have parents. example: Standard Tax Group barcode: anyOf: - type: string - type: 'null' description: The sales-tax group item's barcode. example: '012345678905' isActive: type: boolean description: >- Indicates whether this sales-tax group item is active. Inactive objects are typically hidden from views and reports in QuickBooks. Defaults to `true`. example: true description: anyOf: - type: string - type: 'null' description: >- The sales-tax group item's description that will appear on sales forms that include this item. example: Combined city, county, and state sales tax externalId: anyOf: - type: string description: >- 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: 12345678-abcd-1234-abcd-1234567890ab - type: 'null' salesTaxItems: type: array items: type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false description: >- The sales-tax items that make up this sales-tax group item. QuickBooks Desktop applies these sales-tax items together as one tax selection while tracking each sales tax separately. example: - id: 80000001-1234567890 fullName: State Sales Tax customFields: type: array items: $ref: '#/components/schemas/qbd_custom_field' description: >- The custom fields for the sales-tax group item object, added as user-defined data extensions, not included in the standard QuickBooks object. required: - id - objectType - createdAt - updatedAt - revisionNumber - name - barcode - isActive - description - externalId - salesTaxItems - customFields additionalProperties: false title: The Sales-Tax Group Item object x-conductor-object-type: item summary: >- A sales-tax group item represents a predefined set of sales-tax items bundled together because they are commonly applied to the same sale, allowing QuickBooks Desktop to apply them as one tax selection while calculating and tracking each sales tax separately. qbd_sales_tax_item: type: object properties: id: type: string description: >- The unique identifier assigned by QuickBooks to this sales-tax item. This ID is unique across all sales-tax items but not across different QuickBooks object types. example: 80000001-1234567890 objectType: description: The type of object. This value is always `"qbd_sales_tax_item"`. example: qbd_sales_tax_item type: string const: qbd_sales_tax_item createdAt: type: string description: >- The date and time when this sales-tax item 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. example: 2025-01-01T12:34:56.000Z updatedAt: type: string description: >- The date and time when this sales-tax item 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. example: 2025-02-01T12:34:56.000Z revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of this sales-tax item 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. example: '1721172183' name: type: string description: >- The case-insensitive unique name of this sales-tax item, unique across all sales-tax items. **NOTE**: Sales-tax items do not have a `fullName` field because they are not hierarchical objects, which is why `name` is unique for them but not for objects that have parents. example: Standard Tax barcode: anyOf: - type: string - type: 'null' description: The sales-tax item's barcode. example: '012345678905' isActive: type: boolean description: >- Indicates whether this sales-tax item is active. Inactive objects are typically hidden from views and reports in QuickBooks. Defaults to `true`. example: true class: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The sales-tax item'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. example: id: 80000001-1234567890 fullName: State-Sales-Tax description: anyOf: - type: string - type: 'null' description: >- The sales-tax item's description that will appear on sales forms that include this item. example: Standard rate sales tax for California taxRate: anyOf: - type: string - type: 'null' description: >- The tax rate defined by this sales-tax item, represented as a decimal string. For example, "7.5" represents a 7.5% tax rate. This rate determines the amount of sales tax applied when this item is used in transactions. If a non-zero `taxRate` is specified, then the `taxVendor` field is required. example: '7.5' taxVendor: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The tax agency (vendor) to whom collected sales taxes are owed for this sales-tax item. This field refers to a vendor in QuickBooks that represents the tax authority. If a non-zero `taxRate` is specified, then `taxVendor` is required. example: id: 80000001-1234567890 fullName: State Tax Agency salesTaxReturnLine: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The specific line on the sales tax return form where the tax collected using this sales-tax item should be reported. example: id: 80000001-1234567890 fullName: 'Line 1: State Sales Tax' externalId: anyOf: - type: string description: >- 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: 12345678-abcd-1234-abcd-1234567890ab - type: 'null' customFields: type: array items: $ref: '#/components/schemas/qbd_custom_field' description: >- The custom fields for the sales-tax item object, added as user-defined data extensions, not included in the standard QuickBooks object. required: - id - objectType - createdAt - updatedAt - revisionNumber - name - barcode - isActive - class - description - taxRate - taxVendor - salesTaxReturnLine - externalId - customFields additionalProperties: false title: The Sales-Tax Item object x-conductor-object-type: item summary: >- A sales-tax item is an item used to calculate a single sales tax that is collected at a specified rate and paid to a single agency. qbd_sales_tax_payment_check: type: object properties: id: type: string description: >- The unique identifier assigned by QuickBooks to this sales-tax payment check. This ID is unique across all transaction types. example: 123ABC-1234567890 objectType: description: >- The type of object. This value is always `"qbd_sales_tax_payment_check"`. example: qbd_sales_tax_payment_check type: string const: qbd_sales_tax_payment_check createdAt: type: string description: >- The date and time when this sales-tax payment check 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. example: 2025-01-01T12:34:56.000Z updatedAt: type: string description: >- The date and time when this sales-tax payment check 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. example: 2025-02-01T12:34:56.000Z revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of this sales-tax payment check 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. example: '1721172183' vendor: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The sales-tax agency, represented as a QuickBooks vendor, receiving this sales-tax payment check. This must match the tax vendor associated with the sales-tax items in the payment lines. example: id: 80000001-1234567890 fullName: State Tax Agency transactionDate: type: string format: date description: >- The date of this sales-tax payment check, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-01' bankAccount: type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false description: >- The bank account from which the funds are being drawn for this sales-tax payment check; e.g., Checking or Savings. This sales-tax payment check will decrease the balance of this account. example: id: 80000001-1234567890 fullName: Checking amount: type: string description: >- The total monetary amount of this sales-tax payment check, represented as a decimal string. This equals the sum of the amounts in the sales-tax payment check lines. example: '1000.00' refNumber: anyOf: - type: string - type: 'null' description: >- The case-sensitive user-defined reference number for this sales-tax payment check, 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. **IMPORTANT**: For checks, this field is the check number. example: TAXPMT-1234 memo: anyOf: - type: string - type: 'null' description: A memo or note for this sales-tax payment check. example: Sales tax payment for Q3 2024 address: anyOf: - $ref: '#/components/schemas/qbd_address' - type: 'null' description: The address that is printed on the sales-tax payment check. isQueuedForPrint: anyOf: - type: boolean description: >- Indicates whether this sales-tax payment check is included in the queue of documents for QuickBooks to print. example: true - type: 'null' externalId: anyOf: - type: string description: >- 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: 12345678-abcd-1234-abcd-1234567890ab - type: 'null' lines: type: array items: $ref: '#/components/schemas/qbd_sales_tax_payment_check_line' description: >- The payment lines in this sales-tax payment check, each recording an amount paid toward a sales-tax item. customFields: type: array items: $ref: '#/components/schemas/qbd_custom_field' description: >- The custom fields for the sales-tax payment check object, added as user-defined data extensions, not included in the standard QuickBooks object. required: - id - objectType - createdAt - updatedAt - revisionNumber - vendor - transactionDate - bankAccount - amount - refNumber - memo - address - isQueuedForPrint - externalId - lines - customFields additionalProperties: false title: The Sales-Tax Payment Check object x-conductor-object-type: transaction summary: >- A sales-tax payment check records a check written from a bank account to pay collected sales taxes to a tax agency. It allocates the payment across one or more sales-tax items so QuickBooks Desktop can reduce the sales-tax payable amounts for those items. qbd_sales_tax_payment_check_line: type: object properties: id: type: string description: >- The unique identifier assigned by QuickBooks to this sales-tax payment check line. This ID is unique across all transaction line types. example: 456DEF-1234567890 objectType: description: >- The type of object. This value is always `"qbd_sales_tax_payment_check_line"`. example: qbd_sales_tax_payment_check_line type: string const: qbd_sales_tax_payment_check_line salesTaxItem: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The sales-tax item whose payable balance this sales-tax payment check line is paying. example: id: 80000001-1234567890 fullName: State Sales Tax amount: anyOf: - type: string - type: 'null' description: >- The sales-tax payment amount paid toward this line's sales-tax item, represented as a decimal string. example: '1000.00' taxAmount: anyOf: - type: string - type: 'null' description: >- The sales-tax amount due on this sales-tax payment check line, represented as a decimal string. QuickBooks Desktop returns this field only for Australian company files. example: '10.00' required: - id - objectType - salesTaxItem - amount - taxAmount additionalProperties: false title: The Sales-Tax Payment Check Line object x-conductor-object-type: nested qbd_service_item: type: object properties: id: type: string description: >- The unique identifier assigned by QuickBooks to this service item. This ID is unique across all service items but not across different QuickBooks object types. example: 80000001-1234567890 objectType: description: The type of object. This value is always `"qbd_service_item"`. example: qbd_service_item type: string const: qbd_service_item createdAt: type: string description: >- The date and time when this service item 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. example: 2025-01-01T12:34:56.000Z updatedAt: type: string description: >- The date and time when this service item 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. example: 2025-02-01T12:34:56.000Z revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of this service item 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. example: '1721172183' name: type: string description: >- The case-insensitive name of this service item. Not guaranteed to be unique because it does not include the names of its hierarchical parent objects like `fullName` does. For example, two service items could both have the `name` "Web-Design", but they could have unique `fullName` values, such as "Consulting:Web-Design" and "Contracting:Web-Design". example: Web-Design fullName: type: string description: >- The case-insensitive fully-qualified unique name of this service item, formed by combining the names of its hierarchical parent objects with its own `name`, separated by colons. For example, if a service item is under "Consulting" and has the `name` "Web-Design", its `fullName` would be "Consulting:Web-Design". **NOTE**: Unlike `name`, `fullName` is guaranteed to be unique across all service item objects. However, `fullName` can still be arbitrarily changed by the QuickBooks user when they modify the underlying `name` field. example: Consulting:Web-Design barcode: anyOf: - type: string - type: 'null' description: The service item's barcode. example: '012345678905' isActive: type: boolean description: >- Indicates whether this service item is active. Inactive objects are typically hidden from views and reports in QuickBooks. Defaults to `true`. example: true class: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The service item'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. example: id: 80000001-1234567890 fullName: Professional-Services parent: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The parent service item one level above this one in the hierarchy. For example, if this service item has a `fullName` of "Consulting:Web-Design", its parent has a `fullName` of "Consulting". If this service item is at the top level, this field will be `null`. example: id: 80000001-1234567890 fullName: Consulting sublevel: type: number description: >- The depth level of this service item in the hierarchy. A top-level service item has a `sublevel` of 0; each subsequent sublevel increases this number by 1. For example, a service item with a `fullName` of "Consulting:Web-Design" would have a `sublevel` of 1. example: 1 unitOfMeasureSet: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The unit-of-measure set associated with this service item, which consists of a base unit and related units. example: id: 80000001-1234567890 fullName: Weight Units salesTaxCode: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The default sales-tax code for this service item, determining whether it is taxable or non-taxable. This can be overridden at the transaction-line level. 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. example: id: 80000001-1234567890 fullName: Non salesOrPurchaseDetails: anyOf: - $ref: '#/components/schemas/qbd_sales_or_purchase_details' - type: 'null' description: >- Details for service items that are exclusively sold or exclusively purchased, but not both. This typically applies to non-inventory items (like a purchased office supply that isn't resold) or service items (like consulting services that are sold but not purchased). **IMPORTANT**: A service item will have either `salesAndPurchaseDetails` or `salesOrPurchaseDetails`, but never both because an item cannot have both configurations. salesAndPurchaseDetails: anyOf: - $ref: '#/components/schemas/qbd_sales_and_purchase_details' - type: 'null' description: >- Details for service items that are both purchased and sold, such as reimbursable expenses or inventory items that are bought from vendors and sold to customers. **IMPORTANT**: A service item will have either `salesAndPurchaseDetails` or `salesOrPurchaseDetails`, but never both because an item cannot have both configurations. externalId: anyOf: - type: string description: >- 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: 12345678-abcd-1234-abcd-1234567890ab - type: 'null' customFields: type: array items: $ref: '#/components/schemas/qbd_custom_field' description: >- The custom fields for the service item object, added as user-defined data extensions, not included in the standard QuickBooks object. required: - id - objectType - createdAt - updatedAt - revisionNumber - name - fullName - barcode - isActive - class - parent - sublevel - unitOfMeasureSet - salesTaxCode - salesOrPurchaseDetails - salesAndPurchaseDetails - externalId - customFields additionalProperties: false title: The Service Item object x-conductor-object-type: item summary: >- A service item represents a billable service offered by or purchased by a business in QuickBooks Desktop. It can track both sales and purchases of services, with customizable pricing, descriptions, and tax settings. Common examples include professional services (consulting, legal advice), labor charges (installation, repairs), recurring services (maintenance contracts), and any non-physical items that generate revenue or expenses. qbd_shipping_method: type: object properties: id: type: string description: >- The unique identifier assigned by QuickBooks to this shipping method. This ID is unique across all shipping methods but not across different QuickBooks object types. example: 80000001-1234567890 objectType: description: The type of object. This value is always `"qbd_shipping_method"`. example: qbd_shipping_method type: string const: qbd_shipping_method createdAt: type: string description: >- The date and time when this shipping method 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. example: 2025-01-01T12:34:56.000Z updatedAt: type: string description: >- The date and time when this shipping method 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. example: 2025-02-01T12:34:56.000Z revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of this shipping method 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. example: '1721172183' name: type: string description: >- The case-insensitive unique name of this shipping method, unique across all shipping methods. **NOTE**: Shipping methods do not have a `fullName` field because they are not hierarchical objects, which is why `name` is unique for them but not for objects that have parents. example: FedEx Ground isActive: type: boolean description: >- Indicates whether this shipping method is active. Inactive objects are typically hidden from views and reports in QuickBooks. Defaults to `true`. example: true required: - id - objectType - createdAt - updatedAt - revisionNumber - name - isActive additionalProperties: false title: The Shipping Method object x-conductor-object-type: other summary: >- A shipping method defines how goods are delivered in QuickBooks Desktop, such as standard mail or overnight delivery. qbd_standard_term: type: object properties: id: type: string description: >- The unique identifier assigned by QuickBooks to this standard term. This ID is unique across all standard terms but not across different QuickBooks object types. example: 80000001-1234567890 objectType: description: The type of object. This value is always `"qbd_standard_term"`. example: qbd_standard_term type: string const: qbd_standard_term createdAt: type: string description: >- The date and time when this standard term 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. example: 2025-01-01T12:34:56.000Z updatedAt: type: string description: >- The date and time when this standard term 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. example: 2025-02-01T12:34:56.000Z revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of this standard term 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. example: '1721172183' name: type: string description: >- The case-insensitive unique name of this standard term, unique across all standard terms. **NOTE**: Standard terms do not have a `fullName` field because they are not hierarchical objects, which is why `name` is unique for them but not for objects that have parents. example: Net 30 isActive: type: boolean description: >- Indicates whether this standard term is active. Inactive objects are typically hidden from views and reports in QuickBooks. Defaults to `true`. example: true dueDays: anyOf: - type: number - type: 'null' description: The number of days until payment is due. example: 30 discountDays: anyOf: - type: number - type: 'null' description: >- The number of days within which payment must be received to qualify for the discount specified by `discountPercentage`. example: 10 discountPercentage: anyOf: - type: string - type: 'null' description: >- The discount percentage applied to the payment if received within the number of days specified by `discountDays`. The value is between 0 and 100. example: '10' required: - id - objectType - createdAt - updatedAt - revisionNumber - name - isActive - dueDays - discountDays - discountPercentage additionalProperties: false title: The Standard Term object x-conductor-object-type: other summary: >- A standard term is a payment term that shows the number of days within which payment is due and can include a discount for early payment. qbd_subtotal_item: type: object properties: id: type: string description: >- The unique identifier assigned by QuickBooks to this subtotal item. This ID is unique across all subtotal items but not across different QuickBooks object types. example: 80000001-1234567890 objectType: description: The type of object. This value is always `"qbd_subtotal_item"`. example: qbd_subtotal_item type: string const: qbd_subtotal_item createdAt: type: string description: >- The date and time when this subtotal item 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. example: 2025-01-01T12:34:56.000Z updatedAt: type: string description: >- The date and time when this subtotal item 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. example: 2025-02-01T12:34:56.000Z revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of this subtotal item 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. example: '1721172183' name: type: string description: >- The case-insensitive unique name of this subtotal item, unique across all subtotal items. **NOTE**: Subtotal items do not have a `fullName` field because they are not hierarchical objects, which is why `name` is unique for them but not for objects that have parents. example: Labor subtotal barcode: anyOf: - type: string - type: 'null' description: The subtotal item's barcode. example: '012345678905' isActive: type: boolean description: >- Indicates whether this subtotal item is active. Inactive objects are typically hidden from views and reports in QuickBooks. Defaults to `true`. example: true description: anyOf: - type: string - type: 'null' description: >- The subtotal item's description that will appear on sales forms that include this item. example: Subtotal for all labor costs on this project specialItemType: anyOf: - type: string enum: - finance_charge - reimbursable_expense_group - reimbursable_expense_subtotal - type: 'null' description: The type of special item for this subtotal item. example: finance_charge externalId: anyOf: - type: string description: >- 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: 12345678-abcd-1234-abcd-1234567890ab - type: 'null' customFields: type: array items: $ref: '#/components/schemas/qbd_custom_field' description: >- The custom fields for the subtotal item object, added as user-defined data extensions, not included in the standard QuickBooks object. required: - id - objectType - createdAt - updatedAt - revisionNumber - name - barcode - isActive - description - specialItemType - externalId - customFields additionalProperties: false title: The Subtotal Item object x-conductor-object-type: item summary: >- A subtotal item calculates the sum of all items above it on a sales form, up to the previous subtotal. This is particularly important for applying discounts because discounts can only be applied to the line directly above them, requiring items to be subtotaled first. qbd_template: type: object properties: id: type: string description: >- The unique identifier assigned by QuickBooks to this template. This ID is unique across all templates but not across different QuickBooks object types. example: 80000001-1234567890 objectType: description: The type of object. This value is always `"qbd_template"`. example: qbd_template type: string const: qbd_template createdAt: type: string description: >- The date and time when this template 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. example: 2025-01-01T12:34:56.000Z updatedAt: type: string description: >- The date and time when this template 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. example: 2025-02-01T12:34:56.000Z revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of this template 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. example: '1721172183' name: type: string description: >- The case-insensitive unique name of this template, unique across all templates. **NOTE**: Templates do not have a `fullName` field because they are not hierarchical objects, which is why `name` is unique for them but not for objects that have parents. example: Professional Invoice isActive: type: boolean description: >- Indicates whether this template is active. Inactive objects are typically hidden from views and reports in QuickBooks. Defaults to `true`. example: true templateType: type: string enum: - bill_payment - build_assembly - credit_memo - estimate - invoice - payment_receipt - purchase_order - sales_order - sales_receipt description: The type of transaction that this template is used for. example: invoice required: - id - objectType - createdAt - updatedAt - revisionNumber - name - isActive - templateType additionalProperties: false title: The Template object x-conductor-object-type: other summary: >- A template is a predefined format for printing certain transactions that a user can define in QuickBooks. The following transaction types support templates: credit memos, estimates, invoices, purchase orders, sales orders, sales receipts, receipt payments, and bill payments. qbd_time_tracking_activity: type: object properties: id: type: string description: >- The unique identifier assigned by QuickBooks to this time tracking activity. This ID is unique across all transaction types. example: 123ABC-1234567890 objectType: description: >- The type of object. This value is always `"qbd_time_tracking_activity"`. example: qbd_time_tracking_activity type: string const: qbd_time_tracking_activity createdAt: type: string description: >- The date and time when this time tracking activity 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. example: 2025-01-01T12:34:56.000Z updatedAt: type: string description: >- The date and time when this time tracking activity 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. example: 2025-02-01T12:34:56.000Z revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of this time tracking activity 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. example: '1721172183' transactionDate: type: string format: date description: >- The date of this time tracking activity, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-01' entity: type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false description: >- The employee, vendor, or person on QuickBooks's "Other Names" list whose time is being tracked in this time tracking activity. This cannot refer to a customer - use the `customer` field to associate a customer or customer-job with this time tracking activity. example: id: 80000001-1234567890 fullName: Acme Corporation customer: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The customer or customer-job to which this time tracking activity could be billed. If `billingStatus` is set to "billable", this field is required. example: id: 80000001-1234567890 fullName: Acme Corporation serviceItem: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The type of service performed during this time tracking activity, referring to billable or purchasable services such as specialized labor, consulting hours, and professional fees. **NOTE**: This field is not required if no `customer` is specified. However, if `billingStatus` is set to "billable", both this field and `customer` are required. example: id: 80000001-1234567890 fullName: Legal Consulting duration: type: string description: >- The time spent performing the service during this time tracking activity, in ISO 8601 format for time intervals (PTnHnMnS). For example, 1 hour and 30 minutes is represented as PT1H30M. **NOTE**: Although seconds can be specified when creating a time tracking activity, they are not returned in responses since QuickBooks Desktop's UI does not display seconds. **IMPORTANT**: This field is required for updating time tracking activities, even if the field is not being modified, because of a bug in QuickBooks itself. example: PT1H30M class: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The time tracking activity'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. example: id: 80000001-1234567890 fullName: Project Management payrollWageItem: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The payroll wage item (e.g., Regular Pay, Overtime Pay) to use for this time tracking activity. This field can only be used for time tracking if: (1) the person specified in `entity` is an employee in QuickBooks, and (2) the "Use time data to create paychecks" preference is enabled in their payroll settings. example: id: 80000001-1234567890 fullName: Regular Pay note: anyOf: - type: string - type: 'null' description: A note or comment about this time tracking activity. example: Project planning meeting with client. billingStatus: anyOf: - type: string enum: - billable - has_been_billed - not_billable - type: 'null' description: >- The billing status of this time tracking activity. **IMPORTANT**: When this field is set to "billable" for time tracking activities, both `customer` and `serviceItem` are required so that an invoice can be created. example: billable externalId: anyOf: - type: string description: >- 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: 12345678-abcd-1234-abcd-1234567890ab - type: 'null' isBilled: anyOf: - type: boolean - type: 'null' description: Indicates whether this time tracking activity has been billed. example: false required: - id - objectType - createdAt - updatedAt - revisionNumber - transactionDate - entity - customer - serviceItem - duration - class - payrollWageItem - note - billingStatus - externalId - isBilled additionalProperties: false title: The Time Tracking Activity object x-conductor-object-type: transaction summary: >- A time tracking activity records billable or non-billable time spent by an employee, vendor, or other person on a specific service item, optionally associated with a customer or job for payroll and invoicing. qbd_transaction: type: object properties: transactionType: type: string enum: - 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 description: The type of transaction. example: invoice transactionId: type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of this transaction. If `transactionLineId` is also defined, this is the identifier of the line's parent transaction object. example: 123ABC-1234567890 transactionLineId: anyOf: - type: string maxLength: 36 description: >- The QuickBooks-assigned unique identifier of this transaction line. If `null`, this result is a transaction object. example: 456DEF-1234567890 - type: 'null' createdAt: type: string description: >- The date and time when this transaction 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. example: 2025-01-01T12:34:56.000Z updatedAt: type: string description: >- The date and time when this transaction 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. example: 2025-02-01T12:34:56.000Z entity: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The customer, vendor, employee, or person on QuickBooks's "Other Names" list associated with this transaction. example: id: 80000001-1234567890 fullName: Acme Corporation account: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: The account associated with this transaction. example: id: 80000001-1234567890 fullName: Checking transactionDate: type: string format: date description: The date of this transaction, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-01' refNumber: anyOf: - type: string - type: 'null' description: >- The case-sensitive user-defined reference number for this 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. example: INV-1234 amount: type: string description: >- The monetary amount of this transaction, represented as a decimal string. example: '1000.00' currency: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The transaction's currency. For built-in currencies, the name and code are standard ISO 4217 international values. For user-defined currencies, all values are editable. example: id: 80000001-1234567890 fullName: USD exchangeRate: anyOf: - type: number - type: 'null' description: >- The market exchange rate between this transaction'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: 1.2345 amountInHomeCurrency: anyOf: - type: string - type: 'null' description: >- The monetary amount of this transaction converted to the home currency of the QuickBooks company file. Represented as a decimal string. example: '1234.56' memo: anyOf: - type: string - type: 'null' description: A memo or note for this transaction. example: Customer requested rush delivery required: - transactionType - transactionId - transactionLineId - createdAt - updatedAt - entity - account - transactionDate - refNumber - amount - currency - exchangeRate - amountInHomeCurrency - memo additionalProperties: false title: The Transaction object x-conductor-object-type: transaction x-conductor-sidebar-group-name: All Transactions summary: >- A transaction in QuickBooks Desktop represents a financial event such as an invoice, bill, payment, or deposit that affects accounts and is recorded in the company's financial records. This object is returned by endpoints that search across all transaction types, and therefore only has fields common to all transaction types, such as ID, type, dates, account, and reference numbers. qbd_transfer: type: object properties: id: type: string description: >- The unique identifier assigned by QuickBooks to this transfer. This ID is unique across all transaction types. example: 123ABC-1234567890 objectType: description: The type of object. This value is always `"qbd_transfer"`. example: qbd_transfer type: string const: qbd_transfer createdAt: type: string description: >- The date and time when this transfer 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. example: 2025-01-01T12:34:56.000Z updatedAt: type: string description: >- The date and time when this transfer 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. example: 2025-02-01T12:34:56.000Z revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of this transfer 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. example: '1721172183' transactionDate: type: string format: date description: The date of this transfer, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-01' sourceAccount: type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false description: The account from which money will be transferred. example: id: 80000001-1234567890 fullName: Checking sourceAccountBalance: anyOf: - type: string - type: 'null' description: The balance of the account from which money will be transferred. example: '1000.00' targetAccount: type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false description: The account to which money will be transferred. example: id: 80000001-1234567890 fullName: Savings targetAccountBalance: anyOf: - type: string - type: 'null' description: The balance of the account to which money will be transferred. example: '5000.00' class: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The transfer'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. example: id: 80000001-1234567890 fullName: Inter Departmental amount: type: string description: >- The monetary amount of this transfer, represented as a decimal string. example: '1000.00' memo: anyOf: - type: string - type: 'null' description: A memo or note for this transfer. example: Monthly transfer to savings required: - id - objectType - createdAt - updatedAt - revisionNumber - transactionDate - sourceAccount - sourceAccountBalance - targetAccount - targetAccountBalance - class - amount - memo additionalProperties: false title: The Transfer object x-conductor-object-type: transaction summary: >- A transfer records the movement of funds between two accounts in QuickBooks Desktop. It reduces the balance of one account (the "from" account) and increases the balance of another account (the "to" account) by the same amount. Transfers are commonly used for moving money between bank accounts or recording internal fund movements. qbd_unit_of_measure_set: type: object properties: id: type: string description: >- The unique identifier assigned by QuickBooks to this unit-of-measure set. This ID is unique across all unit-of-measure sets but not across different QuickBooks object types. example: 80000001-1234567890 objectType: description: >- The type of object. This value is always `"qbd_unit_of_measure_set"`. example: qbd_unit_of_measure_set type: string const: qbd_unit_of_measure_set createdAt: type: string description: >- The date and time when this unit-of-measure set 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. example: 2025-01-01T12:34:56.000Z updatedAt: type: string description: >- The date and time when this unit-of-measure set 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. example: 2025-02-01T12:34:56.000Z revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of this unit-of-measure set 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. example: '1721172183' name: type: string description: >- The case-insensitive unique name of this unit-of-measure set, unique across all unit-of-measure sets. To ensure this set appears in the QuickBooks UI for companies configured with a single unit per item, prefix the name with "By the" (e.g., "By the Barrel"). **NOTE**: Unit-of-measure sets do not have a `fullName` field because they are not hierarchical objects, which is why `name` is unique for them but not for objects that have parents. example: Weight Units isActive: type: boolean description: >- Indicates whether this unit-of-measure set is active. Inactive objects are typically hidden from views and reports in QuickBooks. Defaults to `true`. example: true unitOfMeasureType: type: string enum: - area - count - length - other - time - volume - weight description: >- The unit-of-measure set's type. Use "other" for a custom type defined in QuickBooks. example: count baseUnit: description: >- The unit-of-measure set's base unit used to track and price item quantities. If the company file is enabled for a single unit of measure per item, the base unit is the only unit available on transaction line items. If enabled for multiple units per item, the base unit is the default unless overridden by the set's default units. $ref: '#/components/schemas/qbd_base_unit' relatedUnits: type: array items: $ref: '#/components/schemas/qbd_related_unit' description: >- The unit-of-measure set's related units, each specifying how many base units they represent (conversion ratio). defaultUnits: type: array items: $ref: '#/components/schemas/qbd_default_unit' description: >- The unit-of-measure set's default units to appear in the U/M field on transaction line items. You can specify separate defaults for purchases, sales, and shipping. required: - id - objectType - createdAt - updatedAt - revisionNumber - name - isActive - unitOfMeasureType - baseUnit - relatedUnits - defaultUnits additionalProperties: false title: The Unit-Of-Measure Set object x-conductor-object-type: other summary: >- A unit-of-measure set (UOM set) defines a base unit and optional related units with conversion ratios, plus optional defaults for purchases, sales, and shipping. NOTE: The QuickBooks company file must have unit-of-measure enabled (either a single unit per item or multiple units per item). qbd_base_unit: type: object properties: name: type: string description: >- The case-insensitive unique name of this base unit, unique across all base units. **NOTE**: Base units do not have a `fullName` field because they are not hierarchical objects, which is why `name` is unique for them but not for objects that have parents. example: Each abbreviation: type: string description: >- The base unit's short identifier shown in the QuickBooks U/M field on transaction line items. example: ea required: - name - abbreviation additionalProperties: false title: The Base Unit object x-conductor-object-type: nested qbd_related_unit: type: object properties: name: type: string description: >- The case-insensitive unique name of this related unit, unique across all related units. **NOTE**: Related units do not have a `fullName` field because they are not hierarchical objects, which is why `name` is unique for them but not for objects that have parents. example: Case abbreviation: type: string description: >- The related unit's short identifier shown in the QuickBooks U/M field on transaction line items. example: ea conversionRatio: type: string description: >- The number of base units in this related unit, represented as a decimal string. For example, if the base unit is "box" and this related unit is "case" with `conversionRatio` = "10", that means there are 10 boxes in one case. example: '10' required: - name - abbreviation - conversionRatio additionalProperties: false title: The Related Unit object x-conductor-object-type: nested qbd_default_unit: type: object properties: unitUsedFor: type: string enum: - purchase - sales - shipping description: >- Where this default unit is used as the default: purchase line items, sales line items, or shipping lines. example: purchase unit: type: string description: >- The unit name for this default unit, as displayed in the U/M field. If the company file is enabled for multiple units per item, this appears as an available unit for the item. Must correspond to the base unit or a related unit defined in this set. example: Each required: - unitUsedFor - unit additionalProperties: false title: The Default Unit object x-conductor-object-type: nested qbd_vendor_credit: type: object properties: id: type: string description: >- The unique identifier assigned by QuickBooks to this vendor credit. This ID is unique across all transaction types. example: 123ABC-1234567890 objectType: description: The type of object. This value is always `"qbd_vendor_credit"`. example: qbd_vendor_credit type: string const: qbd_vendor_credit createdAt: type: string description: >- The date and time when this vendor credit 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. example: 2025-01-01T12:34:56.000Z updatedAt: type: string description: >- The date and time when this vendor credit 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. example: 2025-02-01T12:34:56.000Z revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of this vendor credit 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. example: '1721172183' vendor: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The vendor who sent this vendor credit for goods or services purchased. example: id: 80000001-1234567890 fullName: Acme Supplies Ltd. payablesAccount: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The Accounts-Payable (A/P) account to which this vendor credit is assigned, used for accounts-payable tracking. **IMPORTANT**: If this vendor credit is linked to other transactions, this A/P account must match the `payablesAccount` used in those other transactions. example: id: 80000001-1234567890 fullName: Accounts-Payable transactionDate: type: string format: date description: The date of this vendor credit, in ISO 8601 format (YYYY-MM-DD). example: '2024-10-01' creditAmount: type: string description: >- The monetary amount of the vendor credit, represented as a decimal string. When applied to a vendor bill, this amount reduces the outstanding balance owed to the vendor. example: '25.00' currency: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The vendor credit's currency. For built-in currencies, the name and code are standard ISO 4217 international values. For user-defined currencies, all values are editable. example: id: 80000001-1234567890 fullName: USD exchangeRate: anyOf: - type: number - type: 'null' description: >- The market exchange rate between this vendor credit'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: 1.2345 creditAmountInHomeCurrency: anyOf: - type: string - type: 'null' description: >- The monetary amount of the vendor credit, converted to the home currency of the QuickBooks company file. Represented as a decimal string. example: '20.00' refNumber: anyOf: - type: string - type: 'null' description: >- The case-sensitive user-defined reference number for this vendor credit, 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. example: VCREDIT-1234 memo: anyOf: - type: string - type: 'null' description: A memo or note for this vendor credit. example: Credit for returned merchandise - Invoice INV-1234 salesTaxCode: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The sales-tax code for this vendor credit, 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 vendor credit'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. example: id: 80000001-1234567890 fullName: Non externalId: anyOf: - type: string description: >- 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: 12345678-abcd-1234-abcd-1234567890ab - type: 'null' linkedTransactions: type: array items: $ref: '#/components/schemas/qbd_linked_transaction' description: >- The vendor credit'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 vendor credits to receive this field because it is not returned by default. expenseLines: type: array items: $ref: '#/components/schemas/qbd_expense_line' description: >- The vendor credit's expense lines, each representing one line in this expense. itemLines: type: array items: $ref: '#/components/schemas/qbd_item_line' description: >- The vendor credit's item lines, each representing the purchase of a specific item or service. itemGroupLines: type: array items: $ref: '#/components/schemas/qbd_item_group_line_item' description: >- The vendor credit's item group lines, each representing a predefined set of items bundled together because they are commonly purchased together or grouped for faster entry. openAmount: anyOf: - type: string - type: 'null' description: >- The remaining unapplied credit on this vendor credit, represented as a decimal string. This equals the original credit amount minus any amounts that have been applied to bills. **NOTE**: QuickBooks Desktop can omit this field in rare cases. If you ever encounter `openAmount` as `null`, we recommend the following fallback procedure: Re-query the vendor credits with `includeLinkedTransactions=true` and compute a fallback open amount as `creditAmount` minus the sum of `linkedTransactions[].amount` for all entries where `linkedTransactions[].linkType` is `"amount"`. example: '500.00' customFields: type: array items: $ref: '#/components/schemas/qbd_custom_field' description: >- The custom fields for the vendor credit object, added as user-defined data extensions, not included in the standard QuickBooks object. required: - id - objectType - createdAt - updatedAt - revisionNumber - vendor - payablesAccount - transactionDate - creditAmount - currency - exchangeRate - creditAmountInHomeCurrency - refNumber - memo - salesTaxCode - externalId - linkedTransactions - expenseLines - itemLines - itemGroupLines - openAmount - customFields additionalProperties: false title: The Vendor Credit object x-conductor-object-type: transaction summary: >- A vendor credit (also known as a bill credit) represents money that a vendor owes back to your business, typically from overpayment or returned merchandise. When processing bill payments, you can apply these credits via `applyToTransactions[].applyCredits[]`, using the vendor credit's `id` as `creditTransactionId` and the amount to apply as `appliedAmount`. Note that vendor credits track money owed by vendors, while credit memos track money you owe customers and are handled through receive-payment transactions. qbd_vendor: type: object properties: id: type: string description: >- The unique identifier assigned by QuickBooks to this vendor. This ID is unique across all vendors but not across different QuickBooks object types. example: 80000001-1234567890 objectType: description: The type of object. This value is always `"qbd_vendor"`. example: qbd_vendor type: string const: qbd_vendor createdAt: type: string description: >- The date and time when this vendor 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. example: 2025-01-01T12:34:56.000Z updatedAt: type: string description: >- The date and time when this vendor 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. example: 2025-02-01T12:34:56.000Z revisionNumber: type: string description: >- The current QuickBooks-assigned revision number of this vendor 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. example: '1721172183' name: type: string description: >- The case-insensitive unique name of this vendor, unique across all vendors. **NOTE**: Vendors do not have a `fullName` field because they are not hierarchical objects, which is why `name` is unique for them but not for objects that have parents. example: Acme Supplies Inc. isActive: type: boolean description: >- Indicates whether this vendor is active. Inactive objects are typically hidden from views and reports in QuickBooks. Defaults to `true`. example: true class: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The vendor'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. example: id: 80000001-1234567890 fullName: Suppliers companyName: anyOf: - type: string - type: 'null' description: >- The name of the company associated with this vendor. This name is used on invoices, checks, and other forms. example: Acme Corporation salutation: anyOf: - type: string - type: 'null' description: >- The formal salutation title that precedes the name of the contact person for this vendor, such as "Mr.", "Ms.", or "Dr.". example: Dr. firstName: anyOf: - type: string - type: 'null' description: The first name of the contact person for this vendor. example: John middleName: anyOf: - type: string - type: 'null' description: The middle name of the contact person for this vendor. example: A. lastName: anyOf: - type: string - type: 'null' description: The last name of the contact person for this vendor. example: Doe jobTitle: anyOf: - type: string - type: 'null' description: The job title of the contact person for this vendor. example: Purchasing Manager billingAddress: anyOf: - $ref: '#/components/schemas/qbd_address' - type: 'null' description: The vendor's billing address. shippingAddress: anyOf: - $ref: '#/components/schemas/qbd_address' - type: 'null' description: The vendor's shipping address. phone: anyOf: - type: string - type: 'null' description: The vendor's primary telephone number. example: +1-555-123-4567 alternatePhone: anyOf: - type: string - type: 'null' description: The vendor's alternate telephone number. example: +1-555-987-6543 fax: anyOf: - type: string - type: 'null' description: The vendor's fax number. example: +1-555-555-1212 email: anyOf: - type: string - type: 'null' description: The vendor's email address. example: vendor@example.com ccEmail: anyOf: - type: string - type: 'null' description: >- An email address to carbon copy (CC) on communications with this vendor. example: manager@example.com contact: anyOf: - type: string - type: 'null' description: The name of the primary contact person for this vendor. example: Jane Smith alternateContact: anyOf: - type: string - type: 'null' description: The name of a alternate contact person for this vendor. example: Bob Johnson customContactFields: type: array items: $ref: '#/components/schemas/qbd_custom_contact_field' description: >- Additional custom contact fields for this vendor, such as phone numbers or email addresses. additionalContacts: type: array items: $ref: '#/components/schemas/qbd_contact' description: Additional alternate contacts for this vendor. nameOnCheck: anyOf: - type: string - type: 'null' description: >- The vendor's name as it should appear on checks issued to this vendor. example: Acme Supplies Ltd. accountNumber: anyOf: - type: string - type: 'null' description: >- The vendor's account number, which appears in the QuickBooks chart of accounts, reports, and graphs. Note that if the "Use Account Numbers" preference is turned off in QuickBooks, the account number may not be visible in the user interface, but it can still be set and retrieved through the API. example: '1010' note: anyOf: - type: string - type: 'null' description: A note or comment about this vendor. example: Preferred vendor for office supplies. additionalNotes: type: array items: $ref: '#/components/schemas/qbd_note' description: Additional notes about this vendor. vendorType: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The vendor's type, used for categorizing vendors into meaningful segments, such as industry or region. example: id: 80000001-1234567890 fullName: Wholesale Supplier terms: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The vendor's payment terms, defining when payment is due and any applicable discounts. example: id: 80000001-1234567890 fullName: Net 30 creditLimit: anyOf: - type: string - type: 'null' description: >- The vendor's credit limit, represented as a decimal string. This is the maximum amount of money that can be spent being before billed by this vendor. If `null`, there is no credit limit. example: '5000.00' taxIdentificationNumber: anyOf: - type: string - type: 'null' description: The vendor's tax identification number (e.g., EIN or SSN). example: 12-3456789 isEligibleFor1099: anyOf: - type: boolean - type: 'null' description: >- Indicates whether this vendor is eligible to receive a 1099 form for tax reporting purposes. When `true`, then the fields `taxId` and `billingAddress` are required. example: true balance: anyOf: - type: string - type: 'null' description: >- The current balance owed to this vendor, represented as a decimal string. A positive number indicates money owed to the vendor. example: '1000.00' billingRate: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The vendor's billing rate, used to override service item rates in time tracking activities. example: id: 80000001-1234567890 fullName: Standard Rate externalId: anyOf: - type: string description: >- 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: 12345678-abcd-1234-abcd-1234567890ab - type: 'null' salesTaxCode: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The default sales-tax code for transactions with this vendor, determining whether the transactions are taxable or non-taxable. This can be overridden at the transaction or transaction-line level. 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. example: id: 80000001-1234567890 fullName: Non salesTaxCountry: anyOf: - type: string - type: 'null' description: The country for which sales tax is collected for this vendor. example: us isSalesTaxAgency: anyOf: - type: boolean - type: 'null' description: Indicates whether this vendor is a sales tax agency. example: false salesTaxReturn: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The vendor's sales tax return information, used for tracking and reporting sales tax liabilities. example: id: 80000001-1234567890 fullName: Quarterly Sales Tax Return taxRegistrationNumber: anyOf: - type: string - type: 'null' description: The vendor's tax registration number, for use in Canada or the UK. example: GB123456789 reportingPeriod: anyOf: - type: string enum: - monthly - quarterly - annual - type: 'null' description: The vendor's tax reporting period, for use in Canada or the UK. example: quarterly isTrackingPurchaseTax: anyOf: - type: boolean - type: 'null' description: >- Indicates whether tax is tracked on purchases for this vendor, for use in Canada or the UK. example: true purchaseTaxAccount: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The account used for tracking taxes on purchases for this vendor, for use in Canada or the UK. example: id: 80000001-1234567890 fullName: GST Paid isTrackingSalesTax: anyOf: - type: boolean - type: 'null' description: >- Indicates whether tax is tracked on sales for this vendor, for use in Canada or the UK. example: true salesTaxAccount: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The account used for tracking taxes on sales for this vendor, for use in Canada or the UK. example: id: 80000001-1234567890 fullName: GST Collected isCompoundingTax: anyOf: - type: boolean - type: 'null' description: >- Indicates whether tax is charged on top of tax for this vendor, for use in Canada or the UK. example: false defaultExpenseAccounts: type: array items: type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false description: The expense accounts to prefill when entering bills for this vendor. example: - id: 80000001-1234567890 fullName: Expenses:Utilities currency: anyOf: - type: object properties: id: anyOf: - type: string - type: 'null' description: >- 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. example: 80000001-1234567890 fullName: anyOf: - type: string - type: 'null' description: >- 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. example: Parent:Child:Grandchild required: - id - fullName additionalProperties: false - type: 'null' description: >- The vendor's currency. For built-in currencies, the name and code are standard ISO 4217 international values. For user-defined currencies, all values are editable. example: id: 80000001-1234567890 fullName: USD customFields: type: array items: $ref: '#/components/schemas/qbd_custom_field' description: >- The custom fields for the vendor object, added as user-defined data extensions, not included in the standard QuickBooks object. required: - id - objectType - createdAt - updatedAt - revisionNumber - name - isActive - class - companyName - salutation - firstName - middleName - lastName - jobTitle - billingAddress - shippingAddress - phone - alternatePhone - fax - email - ccEmail - contact - alternateContact - customContactFields - additionalContacts - nameOnCheck - accountNumber - note - additionalNotes - vendorType - terms - creditLimit - taxIdentificationNumber - isEligibleFor1099 - balance - billingRate - externalId - salesTaxCode - salesTaxCountry - isSalesTaxAgency - salesTaxReturn - taxRegistrationNumber - reportingPeriod - isTrackingPurchaseTax - purchaseTaxAccount - isTrackingSalesTax - salesTaxAccount - isCompoundingTax - defaultExpenseAccounts - currency - customFields additionalProperties: false title: The Vendor object x-conductor-object-type: other summary: >- A vendor is any person or company from whom a small business owner buys goods and services. (Banks and tax agencies usually are included on the vendor list.) A company's vendor list contains information such as account balance and contact information about each vendor. ErrorResponse: type: object properties: error: $ref: '#/components/schemas/Error' required: - error additionalProperties: false securitySchemes: BearerAuth: type: http scheme: bearer description: >- Your Conductor secret key using Bearer auth (e.g., `"Authorization: Bearer {{YOUR_SECRET_KEY}}"`).