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: []
      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:
                  type: number
                  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.
                redirectUrl:
                  type: string
                  format: uri
                  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
              required:
                - publishableKey
                - endUserId
      responses:
        '200':
          description: Returns the auth session object.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: []
      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
      responses:
        '200':
          description: Returns the end-user object after successful end-user creation.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: []
      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:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          content:
            application/json:
              schema:
                type: object
                properties:
                  objectType:
                    type: string
                    const: list
                    description: The type of object. This value is always `"list"`.
                    example: 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
          description: The ID of the end-user to retrieve.
          schema:
            type: string
            description: The ID of the end-user to retrieve.
            example: end_usr_1234567abcdefg
          required: true
      responses:
        '200':
          description: Returns the end-user object if a valid ID was provided.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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
          description: The ID of the end-user to delete.
          schema:
            type: string
            description: The ID of the end-user to delete.
            example: end_usr_1234567abcdefg
          required: true
      responses:
        '200':
          description: >-
            Returns a confirmation of the deletion with the ID of the deleted
            end-user.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    description: The ID of the deleted end-user.
                    example: end_usr_1234567abcdefg
                  objectType:
                    type: string
                    const: end_user
                    description: The type of object. This value is always `"end_user"`.
                    example: end_user
                  deleted:
                    type: boolean
                    description: Indicates whether the end-user was deleted.
                    example: true
                required:
                  - id
                  - objectType
                  - deleted
      x-codeSamples:
        - lang: JavaScript
          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: >-
        Sends a request directly to the specified integration connection (e.g.,
        QuickBooks Desktop) on behalf of the end-user.
      security:
        - BearerAuth: []
      parameters:
        - in: path
          name: id
          description: The ID of the end-user who owns the integration connection.
          schema:
            type: string
            description: The ID of the end-user who owns the integration connection.
            example: end_usr_1234567abcdefg
          required: true
        - in: path
          name: integrationSlug
          description: The integration identifier for the end-user's connection.
          schema:
            type: string
            enum:
              - quickbooks_desktop
            description: The integration identifier for the end-user's connection.
          required: true
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
              description: The request body to send to the integration connection.
              minProperties: 1
      responses:
        '200':
          description: Returns the response from the integration connection.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
                description: The response from the integration connection.
      x-codeSamples:
        - lang: JavaScript
          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
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns a list of account tax lines.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          content:
            application/json:
              schema:
                type: object
                properties:
                  objectType:
                    type: string
                    const: list
                    description: The type of object. This value is always `"list"`.
                    example: 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: query
          name: ids
          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.
          schema:
            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.
            example:
              - 80000001-1234567890
        - in: query
          name: fullNames
          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.
          schema:
            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.
            example:
              - Corporate:Accounts-Payable
        - in: query
          name: limit
          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.
          schema:
            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.
            example: 10
        - in: query
          name: status
          description: Filter for accounts that are active, inactive, or both.
          schema:
            type: string
            enum:
              - active
              - all
              - inactive
            default: active
            description: Filter for accounts that are active, inactive, or both.
            example: active
        - in: query
          name: updatedAfter
          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.
          schema:
            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.
            example: 2025-01-01T12:34:56.000Z
        - in: query
          name: updatedBefore
          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.
          schema:
            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.
            example: 2025-02-01T12:34:56.000Z
        - in: query
          name: nameContains
          description: >-
            Filter for accounts whose `name` contains this substring,
            case-insensitive.


            **NOTE**: If you use this parameter, you cannot also use
            `nameStartsWith` or `nameEndsWith`.
          schema:
            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`.
            example: ABC
        - in: query
          name: nameStartsWith
          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`.
          schema:
            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`.
            example: ABC
        - in: query
          name: nameEndsWith
          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`.
          schema:
            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`.
            example: ABC
        - in: query
          name: nameFrom
          description: >-
            Filter for accounts whose `name` is alphabetically greater than or
            equal to this value.
          schema:
            type: string
            description: >-
              Filter for accounts whose `name` is alphabetically greater than or
              equal to this value.
            example: A
        - in: query
          name: nameTo
          description: >-
            Filter for accounts whose `name` is alphabetically less than or
            equal to this value.
          schema:
            type: string
            description: >-
              Filter for accounts whose `name` is alphabetically less than or
              equal to this value.
            example: Z
        - in: query
          name: accountType
          description: Filter for accounts of this type.
          schema:
            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.
            example: income
        - in: query
          name: currencyIds
          description: Filter for accounts in these currencies.
          schema:
            type: array
            items:
              type: string
            description: Filter for accounts in these currencies.
            example:
              - 80000001-1234567890
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns a list of accounts.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          content:
            application/json:
              schema:
                type: object
                properties:
                  objectType:
                    type: string
                    const: list
                    description: The type of object. This value is always `"list"`.
                    example: 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
          description: The ID of the End-User to receive this request.
          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
      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:
                  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
                  default: true
                parentId:
                  type: string
                  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
                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
                accountNumber:
                  type: string
                  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:
                  type: string
                  description: >-
                    The bank account number or identifying note for this
                    account. Access to this field may be restricted based on
                    permissions.
                  example: '123456789'
                description:
                  type: string
                  description: A description of this account.
                  example: >-
                    Accounts-payable are the amounts owed to suppliers for goods
                    and services purchased on credit.
                openingBalance:
                  type: string
                  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'
                openingBalanceDate:
                  type: string
                  format: date
                  description: >-
                    The date of the opening balance of this account, in ISO 8601
                    format (YYYY-MM-DD).
                  example: '2023-01-01'
                salesTaxCodeId:
                  type: string
                  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. If QuickBooks is not set up to charge sales tax
                    (via the "Do You Charge Sales Tax?" preference), it will
                    assign the default non-taxable code to all sales.
                  example: 80000001-1234567890
                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:
                  type: string
                  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
              required:
                - name
                - accountType
              additionalProperties: false
      responses:
        '200':
          description: Returns the newly created account.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the account to
            retrieve.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the account to
              retrieve.
            example: 80000001-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns the specified account.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: path
          name: id
          description: The QuickBooks-assigned unique identifier of the account to update.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the account to
              update.
            example: 80000001-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      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:
                  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:
                  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
                parentId:
                  type: string
                  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
                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
                accountNumber:
                  type: string
                  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:
                  type: string
                  description: >-
                    The bank account number or identifying note for this
                    account. Access to this field may be restricted based on
                    permissions.
                  example: '123456789'
                description:
                  type: string
                  description: A description of this account.
                  example: >-
                    Accounts-payable are the amounts owed to suppliers for goods
                    and services purchased on credit.
                openingBalance:
                  type: string
                  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'
                openingBalanceDate:
                  type: string
                  format: date
                  description: >-
                    The date of the opening balance of this account, in ISO 8601
                    format (YYYY-MM-DD).
                  example: '2023-01-01'
                salesTaxCodeId:
                  type: string
                  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. If QuickBooks is not set up to charge sales tax
                    (via the "Do You Charge Sales Tax?" preference), it will
                    assign the default non-taxable code to all sales.
                  example: 80000001-1234567890
                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:
                  type: string
                  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
              required:
                - revisionNumber
              additionalProperties: false
      responses:
        '200':
          description: Returns the updated account.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: query
          name: ids
          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.
          schema:
            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.
            example:
              - 123ABC-1234567890
        - in: query
          name: refNumbers
          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.
          schema:
            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.
            example:
              - BILL CHECK PAYMENT-1234
        - in: query
          name: limit
          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.
          schema:
            type: integer
            minimum: 1
            maximum: 150
            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
        - in: query
          name: cursor
          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.
          schema:
            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.
            example: 12345678-abcd-abcd-example-1234567890ab
        - in: query
          name: updatedAfter
          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.
          schema:
            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.
            example: 2025-01-01T12:34:56.000Z
        - in: query
          name: updatedBefore
          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.
          schema:
            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.
            example: 2025-02-01T12:34:56.000Z
        - in: query
          name: transactionDateFrom
          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`).
          schema:
            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`).
            example: '2025-01-01'
        - in: query
          name: transactionDateTo
          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`).
          schema:
            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`).
            example: '2025-02-01'
        - in: query
          name: vendorIds
          description: >-
            Filter for bill check payments sent to these vendors. These are the
            vendors who sent the bills paid by these checks.
          schema:
            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.
            example:
              - 80000001-1234567890
        - in: query
          name: accountIds
          description: Filter for bill check payments associated with these accounts.
          schema:
            type: array
            items:
              type: string
            description: Filter for bill check payments associated with these accounts.
            example:
              - 80000001-1234567890
        - in: query
          name: refNumberContains
          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`.
          schema:
            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`.
            example: CHECK-1234
        - in: query
          name: refNumberStartsWith
          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`.
          schema:
            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`.
            example: CHECK
        - in: query
          name: refNumberEndsWith
          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`.
          schema:
            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`.
            example: '1234'
        - in: query
          name: refNumberFrom
          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.
          schema:
            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.
            example: CHECK-0001
        - in: query
          name: refNumberTo
          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.
          schema:
            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.
            example: CHECK-9999
        - in: query
          name: currencyIds
          description: Filter for bill check payments in these currencies.
          schema:
            type: array
            items:
              type: string
            description: Filter for bill check payments in these currencies.
            example:
              - 80000001-1234567890
        - in: query
          name: includeLineItems
          description: Whether to include line items in the response. Defaults to `true`.
          schema:
            type: boolean
            description: Whether to include line items in the response. Defaults to `true`.
            example: true
            default: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns a list of bill check payments.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          content:
            application/json:
              schema:
                type: object
                properties:
                  objectType:
                    type: string
                    const: list
                    description: The type of object. This value is always `"list"`.
                    example: 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:
                    type:
                      - string
                      - '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:
                    type:
                      - number
                      - '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
          description: The ID of the End-User to receive this request.
          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
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                vendorId:
                  type: string
                  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
                payablesAccountId:
                  type: string
                  description: >-
                    The Accounts-Payable (A/P) account to which this bill check
                    payment is assigned, used to track the amount owed. If not
                    specified, QuickBooks Desktop will use its default A/P
                    account.


                    **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
                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:
                  type: string
                  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
                isQueuedForPrint:
                  type: boolean
                  description: >-
                    Indicates whether this bill check payment is included in the
                    queue of documents for QuickBooks to print.
                  example: true
                refNumber:
                  type: string
                  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.
                  example: CHECK-1234
                memo:
                  type: string
                  description: A memo or note for this bill check payment.
                  example: Payment for office supplies - Invoice INV-1234
                exchangeRate:
                  type: number
                  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
                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:
                  type: array
                  items:
                    type: object
                    properties:
                      transactionId:
                        type: string
                        description: >-
                          The ID of the receivable transaction to which this
                          payment is applied.
                        example: 123ABC-1234567890
                      paymentAmount:
                        type: string
                        description: >-
                          The monetary amount to apply to the receivable
                          transaction, represented as a decimal string.
                        example: '25.00'
                      applyCredits:
                        type: array
                        items:
                          type: object
                          properties:
                            creditTransactionId:
                              type: string
                              description: >-
                                The unique identifier of the credit transaction
                                (credit memo or vendor credit) to apply to this
                                transaction.
                              example: ABCDEF-1234567890
                            appliedAmount:
                              type: string
                              description: >-
                                The amount of credit applied to this
                                transaction. This could include customer
                                deposits, payments, or credits. Represented as a
                                decimal string.
                              example: '100.00'
                            overrideCreditApplication:
                              type: boolean
                              description: Indicates whether to override the credit.
                              example: false
                              default: false
                          required:
                            - creditTransactionId
                            - appliedAmount
                          additionalProperties: false
                        minItems: 1
                        description: >-
                          Credit memos to apply to this receivable transaction,
                          reducing its balance. This creates a link between this
                          receivable transaction and the specified credit memos.


                          **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 receivable transaction and check
                          the `linkedTransactions` response field. If fetching a
                          list of receivable transactions, you must also specify
                          the parameter `includeLinkedTransactions=true` to see
                          the `linkedTransactions` response field.
                      discountAmount:
                        type: string
                        description: >-
                          The monetary amount by which to reduce the receivable
                          transaction's receivable amount, represented as a
                          decimal string.
                        example: '50.00'
                      discountAccountId:
                        type: string
                        description: >-
                          The financial account used to track this receivable
                          transaction's discount.
                        example: 80000001-1234567890
                      discountClassId:
                        type: string
                        description: >-
                          The class used to track this receivable transaction's
                          discount.
                        example: 80000001-1234567890
                    required:
                      - transactionId
                    additionalProperties: false
                  minItems: 1
                  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:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the bill check payment
            to retrieve.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the bill check
              payment to retrieve.
            example: 123ABC-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns the specified bill check payment.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the bill check payment
            to update.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the bill check
              payment to update.
            example: 123ABC-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      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:
                  type: string
                  format: date
                  description: >-
                    The date of this bill check payment, in ISO 8601 format
                    (YYYY-MM-DD).
                  example: '2024-10-01'
                bankAccountId:
                  type: string
                  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
                amount:
                  type: string
                  description: >-
                    The monetary amount of this bill check payment, represented
                    as a decimal string.
                  example: '1000.00'
                exchangeRate:
                  type: number
                  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
                isQueuedForPrint:
                  type: boolean
                  description: >-
                    Indicates whether this bill check payment is included in the
                    queue of documents for QuickBooks to print.
                  example: true
                refNumber:
                  type: string
                  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:
                  type: string
                  description: A memo or note for this bill check payment.
                  example: Payment for office supplies - Invoice INV-1234
                applyToTransactions:
                  type: array
                  items:
                    type: object
                    properties:
                      transactionId:
                        type: string
                        description: >-
                          The ID of the receivable transaction to which this
                          payment is applied.
                        example: 123ABC-1234567890
                      paymentAmount:
                        type: string
                        description: >-
                          The monetary amount to apply to the receivable
                          transaction, represented as a decimal string.
                        example: '25.00'
                      applyCredits:
                        type: array
                        items:
                          type: object
                          properties:
                            creditTransactionId:
                              type: string
                              description: >-
                                The unique identifier of the credit transaction
                                (credit memo or vendor credit) to apply to this
                                transaction.
                              example: ABCDEF-1234567890
                            appliedAmount:
                              type: string
                              description: >-
                                The amount of credit applied to this
                                transaction. This could include customer
                                deposits, payments, or credits. Represented as a
                                decimal string.
                              example: '100.00'
                            overrideCreditApplication:
                              type: boolean
                              description: Indicates whether to override the credit.
                              example: false
                              default: false
                          required:
                            - creditTransactionId
                            - appliedAmount
                          additionalProperties: false
                        minItems: 1
                        description: >-
                          Credit memos to apply to this receivable transaction,
                          reducing its balance. This creates a link between this
                          receivable transaction and the specified credit memos.


                          **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 receivable transaction and check
                          the `linkedTransactions` response field. If fetching a
                          list of receivable transactions, you must also specify
                          the parameter `includeLinkedTransactions=true` to see
                          the `linkedTransactions` response field.
                      discountAmount:
                        type: string
                        description: >-
                          The monetary amount by which to reduce the receivable
                          transaction's receivable amount, represented as a
                          decimal string.
                        example: '50.00'
                      discountAccountId:
                        type: string
                        description: >-
                          The financial account used to track this receivable
                          transaction's discount.
                        example: 80000001-1234567890
                      discountClassId:
                        type: string
                        description: >-
                          The class used to track this receivable transaction's
                          discount.
                        example: 80000001-1234567890
                    required:
                      - transactionId
                    additionalProperties: false
                  minItems: 1
                  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:
                - revisionNumber
              additionalProperties: false
      responses:
        '200':
          description: Returns the updated bill check payment.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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 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: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the bill check payment
            to delete.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the bill check
              payment to delete.
            example: 123ABC-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: >-
            Returns a confirmation of the deletion with the ID of the deleted
            bill check payment.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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:
                    type: string
                    const: qbd_bill_check_payment
                    description: >-
                      The type of object. This value is always
                      `"qbd_bill_check_payment"`.
                    example: qbd_bill_check_payment
                  refNumber:
                    type:
                      - string
                      - '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-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: query
          name: ids
          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.
          schema:
            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.
            example:
              - 123ABC-1234567890
        - in: query
          name: refNumbers
          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.
          schema:
            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.
            example:
              - BILL CREDIT CARD PAYMENT-1234
        - in: query
          name: limit
          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.
          schema:
            type: integer
            minimum: 1
            maximum: 150
            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
        - in: query
          name: cursor
          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.
          schema:
            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.
            example: 12345678-abcd-abcd-example-1234567890ab
        - in: query
          name: updatedAfter
          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.
          schema:
            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.
            example: 2025-01-01T12:34:56.000Z
        - in: query
          name: updatedBefore
          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.
          schema:
            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.
            example: 2025-02-01T12:34:56.000Z
        - in: query
          name: transactionDateFrom
          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`).
          schema:
            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`).
            example: '2025-01-01'
        - in: query
          name: transactionDateTo
          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`).
          schema:
            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`).
            example: '2025-02-01'
        - in: query
          name: vendorIds
          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.
          schema:
            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.
            example:
              - 80000001-1234567890
        - in: query
          name: accountIds
          description: Filter for bill credit card payments associated with these accounts.
          schema:
            type: array
            items:
              type: string
            description: >-
              Filter for bill credit card payments associated with these
              accounts.
            example:
              - 80000001-1234567890
        - in: query
          name: refNumberContains
          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`.
          schema:
            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`.
            example: CARD-1234
        - in: query
          name: refNumberStartsWith
          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`.
          schema:
            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`.
            example: CARD
        - in: query
          name: refNumberEndsWith
          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`.
          schema:
            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`.
            example: '1234'
        - in: query
          name: refNumberFrom
          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.
          schema:
            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.
            example: CARD-0001
        - in: query
          name: refNumberTo
          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.
          schema:
            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.
            example: CARD-9999
        - in: query
          name: currencyIds
          description: Filter for bill credit card payments in these currencies.
          schema:
            type: array
            items:
              type: string
            description: Filter for bill credit card payments in these currencies.
            example:
              - 80000001-1234567890
        - in: query
          name: includeLineItems
          description: Whether to include line items in the response. Defaults to `true`.
          schema:
            type: boolean
            description: Whether to include line items in the response. Defaults to `true`.
            example: true
            default: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns a list of bill credit card payments.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          content:
            application/json:
              schema:
                type: object
                properties:
                  objectType:
                    type: string
                    const: list
                    description: The type of object. This value is always `"list"`.
                    example: 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:
                    type:
                      - string
                      - '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:
                    type:
                      - number
                      - '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
          description: The ID of the End-User to receive this request.
          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
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                vendorId:
                  type: string
                  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
                payablesAccountId:
                  type: string
                  description: >-
                    The Accounts-Payable (A/P) account to which this bill credit
                    card payment is assigned, used to track the amount owed. If
                    not specified, QuickBooks Desktop will use its default A/P
                    account.


                    **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
                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:
                  type: string
                  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
                refNumber:
                  type: string
                  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).
                  example: CARD-1234
                memo:
                  type: string
                  description: A memo or note for this bill credit card payment.
                  example: Payment for office supplies - Invoice INV-1234
                exchangeRate:
                  type: number
                  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
                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:
                  type: array
                  items:
                    type: object
                    properties:
                      transactionId:
                        type: string
                        description: >-
                          The ID of the receivable transaction to which this
                          payment is applied.
                        example: 123ABC-1234567890
                      paymentAmount:
                        type: string
                        description: >-
                          The monetary amount to apply to the receivable
                          transaction, represented as a decimal string.
                        example: '25.00'
                      applyCredits:
                        type: array
                        items:
                          type: object
                          properties:
                            creditTransactionId:
                              type: string
                              description: >-
                                The unique identifier of the credit transaction
                                (credit memo or vendor credit) to apply to this
                                transaction.
                              example: ABCDEF-1234567890
                            appliedAmount:
                              type: string
                              description: >-
                                The amount of credit applied to this
                                transaction. This could include customer
                                deposits, payments, or credits. Represented as a
                                decimal string.
                              example: '100.00'
                            overrideCreditApplication:
                              type: boolean
                              description: Indicates whether to override the credit.
                              example: false
                              default: false
                          required:
                            - creditTransactionId
                            - appliedAmount
                          additionalProperties: false
                        minItems: 1
                        description: >-
                          Credit memos to apply to this receivable transaction,
                          reducing its balance. This creates a link between this
                          receivable transaction and the specified credit memos.


                          **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 receivable transaction and check
                          the `linkedTransactions` response field. If fetching a
                          list of receivable transactions, you must also specify
                          the parameter `includeLinkedTransactions=true` to see
                          the `linkedTransactions` response field.
                      discountAmount:
                        type: string
                        description: >-
                          The monetary amount by which to reduce the receivable
                          transaction's receivable amount, represented as a
                          decimal string.
                        example: '50.00'
                      discountAccountId:
                        type: string
                        description: >-
                          The financial account used to track this receivable
                          transaction's discount.
                        example: 80000001-1234567890
                      discountClassId:
                        type: string
                        description: >-
                          The class used to track this receivable transaction's
                          discount.
                        example: 80000001-1234567890
                    required:
                      - transactionId
                    additionalProperties: false
                  minItems: 1
                  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:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the bill credit card
            payment to retrieve.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the bill credit card
              payment to retrieve.
            example: 123ABC-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns the specified bill credit card payment.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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 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: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the bill credit card
            payment to delete.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the bill credit card
              payment to delete.
            example: 123ABC-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: >-
            Returns a confirmation of the deletion with the ID of the deleted
            bill credit card payment.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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:
                    type: string
                    const: qbd_bill_credit_card_payment
                    description: >-
                      The type of object. This value is always
                      `"qbd_bill_credit_card_payment"`.
                    example: qbd_bill_credit_card_payment
                  refNumber:
                    type:
                      - string
                      - '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/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: query
          name: ids
          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.
          schema:
            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.
            example:
              - 123ABC-1234567890
        - in: query
          name: refNumbers
          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.
          schema:
            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.
            example:
              - BILL-1234
        - in: query
          name: limit
          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.
          schema:
            type: integer
            minimum: 1
            maximum: 150
            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
        - in: query
          name: cursor
          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.
          schema:
            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.
            example: 12345678-abcd-abcd-example-1234567890ab
        - in: query
          name: updatedAfter
          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.
          schema:
            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.
            example: 2025-01-01T12:34:56.000Z
        - in: query
          name: updatedBefore
          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.
          schema:
            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.
            example: 2025-02-01T12:34:56.000Z
        - in: query
          name: transactionDateFrom
          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`).
          schema:
            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`).
            example: '2025-01-01'
        - in: query
          name: transactionDateTo
          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`).
          schema:
            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`).
            example: '2025-02-01'
        - in: query
          name: vendorIds
          description: Filter for bills received from these vendors.
          schema:
            type: array
            items:
              type: string
            description: Filter for bills received from these vendors.
            example:
              - 80000001-1234567890
        - in: query
          name: accountIds
          description: Filter for bills associated with these accounts.
          schema:
            type: array
            items:
              type: string
            description: Filter for bills associated with these accounts.
            example:
              - 80000001-1234567890
        - in: query
          name: refNumberContains
          description: >-
            Filter for bills whose `refNumber` contains this substring.


            **NOTE**: If you use this parameter, you cannot also use
            `refNumberStartsWith` or `refNumberEndsWith`.
          schema:
            type: string
            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
        - in: query
          name: refNumberStartsWith
          description: >-
            Filter for bills whose `refNumber` starts with this substring.


            **NOTE**: If you use this parameter, you cannot also use
            `refNumberContains` or `refNumberEndsWith`.
          schema:
            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`.
            example: BILL
        - in: query
          name: refNumberEndsWith
          description: >-
            Filter for bills whose `refNumber` ends with this substring.


            **NOTE**: If you use this parameter, you cannot also use
            `refNumberContains` or `refNumberStartsWith`.
          schema:
            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`.
            example: '1234'
        - in: query
          name: refNumberFrom
          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.
          schema:
            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.
            example: BILL-0001
        - in: query
          name: refNumberTo
          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.
          schema:
            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.
            example: BILL-9999
        - in: query
          name: currencyIds
          description: Filter for bills in these currencies.
          schema:
            type: array
            items:
              type: string
            description: Filter for bills in these currencies.
            example:
              - 80000001-1234567890
        - in: query
          name: paymentStatus
          description: Filter for bills that are paid, not paid, or both.
          schema:
            type: string
            enum:
              - all
              - paid
              - not_paid
            default: all
            description: Filter for bills that are paid, not paid, or both.
            example: paid
        - in: query
          name: includeLineItems
          description: Whether to include line items in the response. Defaults to `true`.
          schema:
            type: boolean
            description: Whether to include line items in the response. Defaults to `true`.
            example: true
            default: true
        - in: query
          name: includeLinkedTransactions
          description: >-
            Whether to include linked transactions in the response. Defaults to
            `false`. For example, a payment linked to the corresponding bill.
          schema:
            type: boolean
            description: >-
              Whether to include linked transactions in the response. Defaults
              to `false`. For example, a payment linked to the corresponding
              bill.
            example: false
            default: false
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns a list of bills.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          content:
            application/json:
              schema:
                type: object
                properties:
                  objectType:
                    type: string
                    const: list
                    description: The type of object. This value is always `"list"`.
                    example: 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:
                    type:
                      - string
                      - '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:
                    type:
                      - number
                      - '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
          description: The ID of the End-User to receive this request.
          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
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                vendorId:
                  type: string
                  description: >-
                    The vendor who sent this bill for goods or services
                    purchased.
                  example: 80000001-1234567890
                vendorAddress:
                  type: object
                  properties:
                    line1:
                      type: string
                      maxLength: 41
                      description: >-
                        The first line of the address (e.g., street, PO Box, or
                        company name).


                        Maximum length: 41 characters.
                      example: Conductor Labs Inc.
                    line2:
                      type: string
                      maxLength: 41
                      description: >-
                        The second line of the address, if needed (e.g.,
                        apartment, suite, unit, or building).


                        Maximum length: 41 characters.
                      example: 540 Market St.
                    line3:
                      type: string
                      maxLength: 41
                      description: |-
                        The third line of the address, if needed.

                        Maximum length: 41 characters.
                      example: Suite 100
                    line4:
                      type: string
                      maxLength: 41
                      description: |-
                        The fourth line of the address, if needed.

                        Maximum length: 41 characters.
                      example: ''
                    line5:
                      type: string
                      maxLength: 41
                      description: |-
                        The fifth line of the address, if needed.

                        Maximum length: 41 characters.
                      example: ''
                    city:
                      type: string
                      maxLength: 31
                      description: >-
                        The city, district, suburb, town, or village name of the
                        address.


                        Maximum length: 31 characters.
                      example: San Francisco
                    state:
                      type: string
                      maxLength: 21
                      description: >-
                        The state, county, province, or region name of the
                        address.


                        Maximum length: 21 characters.
                      example: CA
                    postalCode:
                      type: string
                      maxLength: 13
                      description: |-
                        The postal code or ZIP code of the address.

                        Maximum length: 13 characters.
                      example: '94110'
                    country:
                      type: string
                      description: The country name of the address.
                      example: United States
                    note:
                      type: string
                      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
                  additionalProperties: false
                  description: The address of the vendor who sent this bill.
                payablesAccountId:
                  type: string
                  description: >-
                    The Accounts-Payable (A/P) account to which this bill is
                    assigned, used to track the amount owed. If not specified,
                    QuickBooks Desktop will use its default A/P account.


                    **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
                transactionDate:
                  type: string
                  format: date
                  description: The date of this bill, in ISO 8601 format (YYYY-MM-DD).
                  example: '2024-10-01'
                dueDate:
                  type: string
                  format: date
                  description: >-
                    The date by which this bill must be paid, in ISO 8601 format
                    (YYYY-MM-DD).
                  example: '2024-10-31'
                refNumber:
                  type: string
                  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).
                  example: BILL-1234
                termsId:
                  type: string
                  description: >-
                    The bill's payment terms, defining when payment is due and
                    any applicable discounts.
                  example: 80000001-1234567890
                memo:
                  type: string
                  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
                salesTaxCodeId:
                  type: string
                  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. If QuickBooks is not set up to charge sales tax
                    (via the "Do You Charge Sales Tax?" preference), it will
                    assign the default non-taxable code to all sales.
                  example: 80000001-1234567890
                exchangeRate:
                  type: number
                  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
                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:
                  type: array
                  items:
                    type: string
                  minItems: 1
                  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.
                expenseLines:
                  type: array
                  items:
                    type: object
                    properties:
                      accountId:
                        type: string
                        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
                      amount:
                        type: string
                        description: >-
                          The monetary amount of this expense line, represented
                          as a decimal string.
                        example: '1000.00'
                      memo:
                        type: string
                        description: A memo or note for this expense line.
                        example: New office chair
                      payeeId:
                        type: string
                        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
                      classId:
                        type: string
                        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
                      salesTaxCodeId:
                        type: string
                        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. If QuickBooks is not set up to charge
                          sales tax (via the "Do You Charge Sales Tax?"
                          preference), it will assign the default non-taxable
                          code to all sales.
                        example: 80000001-1234567890
                      billingStatus:
                        type: string
                        enum:
                          - billable
                          - has_been_billed
                          - not_billable
                        description: The billing status of this expense line.
                        example: billable
                        default: billable
                      salesRepresentativeId:
                        type: string
                        description: >-
                          The expense line's sales representative. Sales
                          representatives can be employees, vendors, or other
                          names in QuickBooks.
                        example: 80000001-1234567890
                      customFields:
                        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
                        minItems: 1
                        description: >-
                          The custom fields for the expense line object, added
                          as user-defined data extensions, not included in the
                          standard QuickBooks object.
                    additionalProperties: false
                  minItems: 1
                  description: >-
                    The bill's expense lines, each representing one line in this
                    expense.
                itemLines:
                  type: array
                  items:
                    type: object
                    properties:
                      itemId:
                        type: string
                        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
                      inventorySiteId:
                        type: string
                        description: >-
                          The site location where inventory for the item
                          associated with this item line is stored.
                        example: 80000001-1234567890
                      inventorySiteLocationId:
                        type: string
                        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
                      serialNumber:
                        type: string
                        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:
                        type: string
                        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:
                        type: string
                        format: date
                        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'
                      description:
                        type: string
                        description: A description of this item line.
                        example: High-quality widget with custom engraving
                      quantity:
                        type: number
                        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:
                        type: string
                        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
                      cost:
                        type: string
                        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:
                        type: string
                        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'
                      customerId:
                        type: string
                        description: >-
                          The customer or customer-job associated with this item
                          line.
                        example: 80000001-1234567890
                      classId:
                        type: string
                        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
                      salesTaxCodeId:
                        type: string
                        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. If QuickBooks is not set up to charge
                          sales tax (via the "Do You Charge Sales Tax?"
                          preference), it will assign the default non-taxable
                          code to all sales.
                        example: 80000001-1234567890
                      billingStatus:
                        type: string
                        enum:
                          - billable
                          - has_been_billed
                          - not_billable
                        description: The billing status of this item line.
                        example: billable
                        default: billable
                      overrideItemAccountId:
                        type: string
                        description: >-
                          The account to use for this item line, overriding the
                          default account associated with the item.
                        example: 80000001-1234567890
                      linkToTransactionLine:
                        type: object
                        properties:
                          transactionId:
                            type: string
                            description: >-
                              The ID of the transaction to which to link this
                              transaction.
                            example: 123ABC-1234567890
                          transactionLineId:
                            type: string
                            description: >-
                              The ID of the transaction line to which to link
                              this transaction.
                            example: 456DEF-1234567890
                        required:
                          - transactionId
                          - transactionLineId
                        additionalProperties: false
                        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.
                      salesRepresentativeId:
                        type: string
                        description: >-
                          The item line's sales representative. Sales
                          representatives can be employees, vendors, or other
                          names in QuickBooks.
                        example: 80000001-1234567890
                      customFields:
                        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
                        minItems: 1
                        description: >-
                          The custom fields for the item line object, added as
                          user-defined data extensions, not included in the
                          standard QuickBooks object.
                    additionalProperties: false
                  minItems: 1
                  description: >-
                    The bill's item lines, each representing the purchase of a
                    specific item or service.
                itemGroupLines:
                  type: array
                  items:
                    type: object
                    properties:
                      itemGroupId:
                        type: string
                        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
                      quantity:
                        type: number
                        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:
                        type: string
                        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
                      inventorySiteId:
                        type: string
                        description: >-
                          The site location where inventory for the item group
                          associated with this item group line is stored.
                        example: 80000001-1234567890
                      inventorySiteLocationId:
                        type: string
                        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
                      customFields:
                        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
                        minItems: 1
                        description: >-
                          The custom fields for the item group line object,
                          added as user-defined data extensions, not included in
                          the standard QuickBooks object.
                    required:
                      - itemGroupId
                    additionalProperties: false
                  minItems: 1
                  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.
              required:
                - vendorId
                - transactionDate
              additionalProperties: false
      responses:
        '200':
          description: Returns the newly created bill.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: path
          name: id
          description: The QuickBooks-assigned unique identifier of the bill to retrieve.
          schema:
            type: string
            description: The QuickBooks-assigned unique identifier of the bill to retrieve.
            example: 123ABC-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns the specified bill.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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.
      security:
        - BearerAuth: []
      parameters:
        - in: path
          name: id
          description: The QuickBooks-assigned unique identifier of the bill to update.
          schema:
            type: string
            description: The QuickBooks-assigned unique identifier of the bill to update.
            example: 123ABC-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      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:
                  type: string
                  description: >-
                    The vendor who sent this bill for goods or services
                    purchased.
                  example: 80000001-1234567890
                vendorAddress:
                  type: object
                  properties:
                    line1:
                      type: string
                      maxLength: 41
                      description: >-
                        The first line of the address (e.g., street, PO Box, or
                        company name).


                        Maximum length: 41 characters.
                      example: Conductor Labs Inc.
                    line2:
                      type: string
                      maxLength: 41
                      description: >-
                        The second line of the address, if needed (e.g.,
                        apartment, suite, unit, or building).


                        Maximum length: 41 characters.
                      example: 540 Market St.
                    line3:
                      type: string
                      maxLength: 41
                      description: |-
                        The third line of the address, if needed.

                        Maximum length: 41 characters.
                      example: Suite 100
                    line4:
                      type: string
                      maxLength: 41
                      description: |-
                        The fourth line of the address, if needed.

                        Maximum length: 41 characters.
                      example: ''
                    line5:
                      type: string
                      maxLength: 41
                      description: |-
                        The fifth line of the address, if needed.

                        Maximum length: 41 characters.
                      example: ''
                    city:
                      type: string
                      maxLength: 31
                      description: >-
                        The city, district, suburb, town, or village name of the
                        address.


                        Maximum length: 31 characters.
                      example: San Francisco
                    state:
                      type: string
                      maxLength: 21
                      description: >-
                        The state, county, province, or region name of the
                        address.


                        Maximum length: 21 characters.
                      example: CA
                    postalCode:
                      type: string
                      maxLength: 13
                      description: |-
                        The postal code or ZIP code of the address.

                        Maximum length: 13 characters.
                      example: '94110'
                    country:
                      type: string
                      description: The country name of the address.
                      example: United States
                    note:
                      type: string
                      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
                  additionalProperties: false
                  description: The address of the vendor who sent this bill.
                payablesAccountId:
                  type: string
                  description: >-
                    The Accounts-Payable (A/P) account to which this bill is
                    assigned, used to track the amount owed. If not specified,
                    QuickBooks Desktop will use its default A/P account.


                    **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
                transactionDate:
                  type: string
                  format: date
                  description: The date of this bill, in ISO 8601 format (YYYY-MM-DD).
                  example: '2024-10-01'
                dueDate:
                  type: string
                  format: date
                  description: >-
                    The date by which this bill must be paid, in ISO 8601 format
                    (YYYY-MM-DD).
                  example: '2024-10-31'
                refNumber:
                  type: string
                  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
                termsId:
                  type: string
                  description: >-
                    The bill's payment terms, defining when payment is due and
                    any applicable discounts.
                  example: 80000001-1234567890
                memo:
                  type: string
                  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
                salesTaxCodeId:
                  type: string
                  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. If QuickBooks is not set up to charge sales tax
                    (via the "Do You Charge Sales Tax?" preference), it will
                    assign the default non-taxable code to all sales.
                  example: 80000001-1234567890
                exchangeRate:
                  type: number
                  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
                clearExpenseLines:
                  type: boolean
                  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
                expenseLines:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                        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:
                        type: string
                        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
                      amount:
                        type: string
                        description: >-
                          The monetary amount of this expense line, represented
                          as a decimal string.
                        example: '1000.00'
                      memo:
                        type: string
                        description: A memo or note for this expense line.
                        example: New office chair
                      payeeId:
                        type: string
                        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
                      classId:
                        type: string
                        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
                      salesTaxCodeId:
                        type: string
                        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. If QuickBooks is not set up to charge
                          sales tax (via the "Do You Charge Sales Tax?"
                          preference), it will assign the default non-taxable
                          code to all sales.
                        example: 80000001-1234567890
                      billingStatus:
                        type: string
                        enum:
                          - billable
                          - has_been_billed
                          - not_billable
                        description: The billing status of this expense line.
                        example: billable
                      salesRepresentativeId:
                        type: string
                        description: >-
                          The expense line's sales representative. Sales
                          representatives can be employees, vendors, or other
                          names in QuickBooks.
                        example: 80000001-1234567890
                    required:
                      - id
                    additionalProperties: false
                  minItems: 1
                  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.
                clearItemLines:
                  type: boolean
                  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
                itemLines:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                        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:
                        type: string
                        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
                      inventorySiteId:
                        type: string
                        description: >-
                          The site location where inventory for the item
                          associated with this item line is stored.
                        example: 80000001-1234567890
                      inventorySiteLocationId:
                        type: string
                        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
                      serialNumber:
                        type: string
                        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:
                        type: string
                        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:
                        type: string
                        format: date
                        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'
                      description:
                        type: string
                        description: A description of this item line.
                        example: High-quality widget with custom engraving
                      quantity:
                        type: number
                        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:
                        type: string
                        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
                      overrideUnitOfMeasureSetId:
                        type: string
                        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
                      cost:
                        type: string
                        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:
                        type: string
                        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'
                      customerId:
                        type: string
                        description: >-
                          The customer or customer-job associated with this item
                          line.
                        example: 80000001-1234567890
                      classId:
                        type: string
                        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
                      salesTaxCodeId:
                        type: string
                        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. If QuickBooks is not set up to charge
                          sales tax (via the "Do You Charge Sales Tax?"
                          preference), it will assign the default non-taxable
                          code to all sales.
                        example: 80000001-1234567890
                      billingStatus:
                        type: string
                        enum:
                          - billable
                          - has_been_billed
                          - not_billable
                        description: The billing status of this item line.
                        example: billable
                      overrideItemAccountId:
                        type: string
                        description: >-
                          The account to use for this item line, overriding the
                          default account associated with the item.
                        example: 80000001-1234567890
                      salesRepresentativeId:
                        type: string
                        description: >-
                          The item line's sales representative. Sales
                          representatives can be employees, vendors, or other
                          names in QuickBooks.
                        example: 80000001-1234567890
                    required:
                      - id
                    additionalProperties: false
                  minItems: 1
                  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.
                itemGroupLines:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                        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:
                        type: string
                        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
                      quantity:
                        type: number
                        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:
                        type: string
                        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
                      overrideUnitOfMeasureSetId:
                        type: string
                        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
                      itemLines:
                        type: array
                        items:
                          type: object
                          properties:
                            id:
                              type: string
                              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:
                              type: string
                              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
                            inventorySiteId:
                              type: string
                              description: >-
                                The site location where inventory for the item
                                associated with this item line is stored.
                              example: 80000001-1234567890
                            inventorySiteLocationId:
                              type: string
                              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
                            serialNumber:
                              type: string
                              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:
                              type: string
                              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:
                              type: string
                              format: date
                              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'
                            description:
                              type: string
                              description: A description of this item line.
                              example: High-quality widget with custom engraving
                            quantity:
                              type: number
                              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:
                              type: string
                              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
                            overrideUnitOfMeasureSetId:
                              type: string
                              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
                            cost:
                              type: string
                              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:
                              type: string
                              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'
                            customerId:
                              type: string
                              description: >-
                                The customer or customer-job associated with
                                this item line.
                              example: 80000001-1234567890
                            classId:
                              type: string
                              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
                            salesTaxCodeId:
                              type: string
                              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. If QuickBooks is not set
                                up to charge sales tax (via the "Do You Charge
                                Sales Tax?" preference), it will assign the
                                default non-taxable code to all sales.
                              example: 80000001-1234567890
                            billingStatus:
                              type: string
                              enum:
                                - billable
                                - has_been_billed
                                - not_billable
                              description: The billing status of this item line.
                              example: billable
                            overrideItemAccountId:
                              type: string
                              description: >-
                                The account to use for this item line,
                                overriding the default account associated with
                                the item.
                              example: 80000001-1234567890
                            salesRepresentativeId:
                              type: string
                              description: >-
                                The item line's sales representative. Sales
                                representatives can be employees, vendors, or
                                other names in QuickBooks.
                              example: 80000001-1234567890
                          required:
                            - id
                          additionalProperties: false
                        minItems: 1
                        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.
                    required:
                      - id
                    additionalProperties: false
                  minItems: 1
                  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.
              required:
                - revisionNumber
              additionalProperties: false
      responses:
        '200':
          description: Returns the updated bill.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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 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: path
          name: id
          description: The QuickBooks-assigned unique identifier of the bill to delete.
          schema:
            type: string
            description: The QuickBooks-assigned unique identifier of the bill to delete.
            example: 123ABC-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: >-
            Returns a confirmation of the deletion with the ID of the deleted
            bill.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    description: >-
                      The QuickBooks-assigned unique identifier of the deleted
                      bill.
                    example: 123ABC-1234567890
                  objectType:
                    type: string
                    const: qbd_bill
                    description: The type of object. This value is always `"qbd_bill"`.
                    example: qbd_bill
                  refNumber:
                    type:
                      - string
                      - '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/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: query
          name: ids
          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.
          schema:
            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.
            example:
              - 123ABC-1234567890
        - in: query
          name: refNumbers
          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.
          schema:
            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.
            example:
              - BUILD ASSEMBLY-1234
        - in: query
          name: limit
          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.
          schema:
            type: integer
            minimum: 1
            maximum: 150
            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
        - in: query
          name: cursor
          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.
          schema:
            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.
            example: 12345678-abcd-abcd-example-1234567890ab
        - in: query
          name: updatedAfter
          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.
          schema:
            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.
            example: 2025-01-01T12:34:56.000Z
        - in: query
          name: updatedBefore
          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.
          schema:
            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.
            example: 2025-02-01T12:34:56.000Z
        - in: query
          name: transactionDateFrom
          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`).
          schema:
            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`).
            example: '2025-01-01'
        - in: query
          name: transactionDateTo
          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`).
          schema:
            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`).
            example: '2025-02-01'
        - in: query
          name: itemIds
          description: Filter for build assemblies containing these items.
          schema:
            type: array
            items:
              type: string
            description: Filter for build assemblies containing these items.
            example:
              - 80000001-1234567890
        - in: query
          name: refNumberContains
          description: >-
            Filter for build assemblies whose `refNumber` contains this
            substring.


            **NOTE**: If you use this parameter, you cannot also use
            `refNumberStartsWith` or `refNumberEndsWith`.
          schema:
            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`.
            example: BUILD-1234
        - in: query
          name: refNumberStartsWith
          description: >-
            Filter for build assemblies whose `refNumber` starts with this
            substring.


            **NOTE**: If you use this parameter, you cannot also use
            `refNumberContains` or `refNumberEndsWith`.
          schema:
            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`.
            example: BUILD
        - in: query
          name: refNumberEndsWith
          description: >-
            Filter for build assemblies whose `refNumber` ends with this
            substring.


            **NOTE**: If you use this parameter, you cannot also use
            `refNumberContains` or `refNumberStartsWith`.
          schema:
            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`.
            example: '1234'
        - in: query
          name: refNumberFrom
          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.
          schema:
            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.
            example: BUILD-0001
        - in: query
          name: refNumberTo
          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.
          schema:
            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.
            example: BUILD-9999
        - in: query
          name: pendingStatus
          description: Filter for build assemblies that are pending, not pending, or both.
          schema:
            type: string
            enum:
              - all
              - not_pending
              - pending
            default: all
            description: >-
              Filter for build assemblies that are pending, not pending, or
              both.
            example: pending
        - in: query
          name: includeComponentLineItems
          description: >-
            Whether to include component line items in the response. Defaults to
            `true`.
          schema:
            type: boolean
            description: >-
              Whether to include component line items in the response. Defaults
              to `true`.
            example: true
            default: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns a list of build assemblies.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          content:
            application/json:
              schema:
                type: object
                properties:
                  objectType:
                    type: string
                    const: list
                    description: The type of object. This value is always `"list"`.
                    example: 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:
                    type:
                      - string
                      - '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:
                    type:
                      - number
                      - '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
          description: The ID of the End-User to receive this request.
          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
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                inventoryAssemblyItemId:
                  type: string
                  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
                inventorySiteId:
                  type: string
                  description: >-
                    The site location where inventory for the item associated
                    with this build assembly is stored.
                  example: 80000001-1234567890
                inventorySiteLocationId:
                  type: string
                  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
                serialNumber:
                  type: string
                  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:
                  type: string
                  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:
                  type: string
                  format: date
                  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'
                transactionDate:
                  type: string
                  format: date
                  description: >-
                    The date of this build assembly, in ISO 8601 format
                    (YYYY-MM-DD).
                  example: '2024-10-01'
                refNumber:
                  type: string
                  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).
                  example: BUILD-1234
                memo:
                  type: string
                  description: A memo or note for this build assembly.
                  example: Assembled 25 units of Model ABC-123 Office Chair
                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
                markPendingIfRequired:
                  type: boolean
                  description: >-
                    When `true`, the build assembly will be marked pending if
                    there are insufficient quantities to complete the build
                    assembly.
                  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
              required:
                - inventoryAssemblyItemId
                - transactionDate
                - quantityToBuild
              additionalProperties: false
      responses:
        '200':
          description: Returns the newly created build assembly.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the build assembly to
            retrieve.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the build assembly to
              retrieve.
            example: 123ABC-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns the specified build assembly.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the build assembly to
            update.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the build assembly to
              update.
            example: 123ABC-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      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:
                  type: string
                  description: >-
                    The site location where inventory for the item associated
                    with this build assembly is stored.
                  example: 80000001-1234567890
                inventorySiteLocationId:
                  type: string
                  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
                serialNumber:
                  type: string
                  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:
                  type: string
                  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:
                  type: string
                  format: date
                  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'
                transactionDate:
                  type: string
                  format: date
                  description: >-
                    The date of this build assembly, in ISO 8601 format
                    (YYYY-MM-DD).
                  example: '2024-10-01'
                refNumber:
                  type: string
                  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:
                  type: string
                  description: A memo or note for this build assembly.
                  example: Assembled 25 units of Model ABC-123 Office Chair
                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
                markPendingIfRequired:
                  type: boolean
                  description: >-
                    When `true`, the build assembly will be marked pending if
                    there are insufficient quantities to complete the build
                    assembly.
                  example: true
                removePending:
                  type: boolean
                  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
              required:
                - revisionNumber
              additionalProperties: false
      responses:
        '200':
          description: Returns the updated build assembly.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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 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: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the build assembly to
            delete.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the build assembly to
              delete.
            example: 123ABC-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: >-
            Returns a confirmation of the deletion with the ID of the deleted
            build assembly.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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:
                    type: string
                    const: qbd_build_assembly
                    description: >-
                      The type of object. This value is always
                      `"qbd_build_assembly"`.
                    example: qbd_build_assembly
                  refNumber:
                    type:
                      - string
                      - '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: query
          name: ids
          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.
          schema:
            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.
            example:
              - 123ABC-1234567890
        - in: query
          name: refNumbers
          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.
          schema:
            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.
            example:
              - CHECK-1234
        - in: query
          name: limit
          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.
          schema:
            type: integer
            minimum: 1
            maximum: 150
            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
        - in: query
          name: cursor
          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.
          schema:
            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.
            example: 12345678-abcd-abcd-example-1234567890ab
        - in: query
          name: updatedAfter
          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.
          schema:
            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.
            example: 2025-01-01T12:34:56.000Z
        - in: query
          name: updatedBefore
          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.
          schema:
            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.
            example: 2025-02-01T12:34:56.000Z
        - in: query
          name: transactionDateFrom
          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`).
          schema:
            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`).
            example: '2025-01-01'
        - in: query
          name: transactionDateTo
          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`).
          schema:
            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`).
            example: '2025-02-01'
        - in: query
          name: payeeIds
          description: >-
            Filter for checks addressed to these payees. These are the people or
            companies who will receive these checks.
          schema:
            type: array
            items:
              type: string
            description: >-
              Filter for checks addressed to these payees. These are the people
              or companies who will receive these checks.
            example:
              - 80000001-1234567890
        - in: query
          name: accountIds
          description: Filter for checks associated with these accounts.
          schema:
            type: array
            items:
              type: string
            description: Filter for checks associated with these accounts.
            example:
              - 80000001-1234567890
        - in: query
          name: refNumberContains
          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`.
          schema:
            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`.
            example: CHECK-1234
        - in: query
          name: refNumberStartsWith
          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`.
          schema:
            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`.
            example: CHECK
        - in: query
          name: refNumberEndsWith
          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`.
          schema:
            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`.
            example: '1234'
        - in: query
          name: refNumberFrom
          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.
          schema:
            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.
            example: CHECK-0001
        - in: query
          name: refNumberTo
          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.
          schema:
            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.
            example: CHECK-9999
        - in: query
          name: currencyIds
          description: Filter for checks in these currencies.
          schema:
            type: array
            items:
              type: string
            description: Filter for checks in these currencies.
            example:
              - 80000001-1234567890
        - in: query
          name: includeLineItems
          description: Whether to include line items in the response. Defaults to `true`.
          schema:
            type: boolean
            description: Whether to include line items in the response. Defaults to `true`.
            example: true
            default: true
        - in: query
          name: includeLinkedTransactions
          description: >-
            Whether to include linked transactions in the response. Defaults to
            `false`. For example, a payment linked to the corresponding check.
          schema:
            type: boolean
            description: >-
              Whether to include linked transactions in the response. Defaults
              to `false`. For example, a payment linked to the corresponding
              check.
            example: false
            default: false
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns a list of checks.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          content:
            application/json:
              schema:
                type: object
                properties:
                  objectType:
                    type: string
                    const: list
                    description: The type of object. This value is always `"list"`.
                    example: 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:
                    type:
                      - string
                      - '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:
                    type:
                      - number
                      - '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
          description: The ID of the End-User to receive this request.
          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
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                bankAccountId:
                  type: string
                  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
                payeeId:
                  type: string
                  description: The person or company who will receive this check.
                  example: 80000001-1234567890
                refNumber:
                  type: string
                  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.
                  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'
                memo:
                  type: string
                  description: The memo that is printed on this check.
                  example: Payment for office supplies - Invoice INV-1234
                address:
                  type: object
                  properties:
                    line1:
                      type: string
                      maxLength: 41
                      description: >-
                        The first line of the address (e.g., street, PO Box, or
                        company name).


                        Maximum length: 41 characters.
                      example: Conductor Labs Inc.
                    line2:
                      type: string
                      maxLength: 41
                      description: >-
                        The second line of the address, if needed (e.g.,
                        apartment, suite, unit, or building).


                        Maximum length: 41 characters.
                      example: 540 Market St.
                    line3:
                      type: string
                      maxLength: 41
                      description: |-
                        The third line of the address, if needed.

                        Maximum length: 41 characters.
                      example: Suite 100
                    line4:
                      type: string
                      maxLength: 41
                      description: |-
                        The fourth line of the address, if needed.

                        Maximum length: 41 characters.
                      example: ''
                    line5:
                      type: string
                      maxLength: 41
                      description: |-
                        The fifth line of the address, if needed.

                        Maximum length: 41 characters.
                      example: ''
                    city:
                      type: string
                      maxLength: 31
                      description: >-
                        The city, district, suburb, town, or village name of the
                        address.


                        Maximum length: 31 characters.
                      example: San Francisco
                    state:
                      type: string
                      maxLength: 21
                      description: >-
                        The state, county, province, or region name of the
                        address.


                        Maximum length: 21 characters.
                      example: CA
                    postalCode:
                      type: string
                      maxLength: 13
                      description: |-
                        The postal code or ZIP code of the address.

                        Maximum length: 13 characters.
                      example: '94110'
                    country:
                      type: string
                      description: The country name of the address.
                      example: United States
                    note:
                      type: string
                      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
                  additionalProperties: false
                  description: The address that is printed on the check.
                isQueuedForPrint:
                  type: boolean
                  description: >-
                    Indicates whether this check is included in the queue of
                    documents for QuickBooks to print.
                  example: true
                salesTaxCodeId:
                  type: string
                  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. If QuickBooks is not set up to charge sales tax
                    (via the "Do You Charge Sales Tax?" preference), it will
                    assign the default non-taxable code to all sales.
                  example: 80000001-1234567890
                exchangeRate:
                  type: number
                  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
                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:
                  type: array
                  items:
                    type: object
                    properties:
                      transactionId:
                        type: string
                        description: The ID of the transaction to be paid by this check.
                        example: 123ABC-1234567890
                      amount:
                        type: string
                        description: >-
                          The monetary amount from this check to apply to the
                          specified transaction, represented as a decimal
                          string.
                        example: '1000.00'
                    required:
                      - transactionId
                    additionalProperties: false
                  minItems: 1
                  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.
                expenseLines:
                  type: array
                  items:
                    type: object
                    properties:
                      accountId:
                        type: string
                        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
                      amount:
                        type: string
                        description: >-
                          The monetary amount of this expense line, represented
                          as a decimal string.
                        example: '1000.00'
                      memo:
                        type: string
                        description: A memo or note for this expense line.
                        example: New office chair
                      payeeId:
                        type: string
                        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
                      classId:
                        type: string
                        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
                      salesTaxCodeId:
                        type: string
                        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. If QuickBooks is not set up to charge
                          sales tax (via the "Do You Charge Sales Tax?"
                          preference), it will assign the default non-taxable
                          code to all sales.
                        example: 80000001-1234567890
                      billingStatus:
                        type: string
                        enum:
                          - billable
                          - has_been_billed
                          - not_billable
                        description: The billing status of this expense line.
                        example: billable
                        default: billable
                      salesRepresentativeId:
                        type: string
                        description: >-
                          The expense line's sales representative. Sales
                          representatives can be employees, vendors, or other
                          names in QuickBooks.
                        example: 80000001-1234567890
                      customFields:
                        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
                        minItems: 1
                        description: >-
                          The custom fields for the expense line object, added
                          as user-defined data extensions, not included in the
                          standard QuickBooks object.
                    additionalProperties: false
                  minItems: 1
                  description: >-
                    The check's expense lines, each representing one line in
                    this expense.
                itemLines:
                  type: array
                  items:
                    type: object
                    properties:
                      itemId:
                        type: string
                        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
                      inventorySiteId:
                        type: string
                        description: >-
                          The site location where inventory for the item
                          associated with this item line is stored.
                        example: 80000001-1234567890
                      inventorySiteLocationId:
                        type: string
                        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
                      serialNumber:
                        type: string
                        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:
                        type: string
                        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:
                        type: string
                        format: date
                        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'
                      description:
                        type: string
                        description: A description of this item line.
                        example: High-quality widget with custom engraving
                      quantity:
                        type: number
                        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:
                        type: string
                        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
                      cost:
                        type: string
                        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:
                        type: string
                        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'
                      customerId:
                        type: string
                        description: >-
                          The customer or customer-job associated with this item
                          line.
                        example: 80000001-1234567890
                      classId:
                        type: string
                        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
                      salesTaxCodeId:
                        type: string
                        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. If QuickBooks is not set up to charge
                          sales tax (via the "Do You Charge Sales Tax?"
                          preference), it will assign the default non-taxable
                          code to all sales.
                        example: 80000001-1234567890
                      billingStatus:
                        type: string
                        enum:
                          - billable
                          - has_been_billed
                          - not_billable
                        description: The billing status of this item line.
                        example: billable
                        default: billable
                      overrideItemAccountId:
                        type: string
                        description: >-
                          The account to use for this item line, overriding the
                          default account associated with the item.
                        example: 80000001-1234567890
                      linkToTransactionLine:
                        type: object
                        properties:
                          transactionId:
                            type: string
                            description: >-
                              The ID of the transaction to which to link this
                              transaction.
                            example: 123ABC-1234567890
                          transactionLineId:
                            type: string
                            description: >-
                              The ID of the transaction line to which to link
                              this transaction.
                            example: 456DEF-1234567890
                        required:
                          - transactionId
                          - transactionLineId
                        additionalProperties: false
                        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.
                      salesRepresentativeId:
                        type: string
                        description: >-
                          The item line's sales representative. Sales
                          representatives can be employees, vendors, or other
                          names in QuickBooks.
                        example: 80000001-1234567890
                      customFields:
                        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
                        minItems: 1
                        description: >-
                          The custom fields for the item line object, added as
                          user-defined data extensions, not included in the
                          standard QuickBooks object.
                    additionalProperties: false
                  minItems: 1
                  description: >-
                    The check's item lines, each representing the purchase of a
                    specific item or service.
                itemGroupLines:
                  type: array
                  items:
                    type: object
                    properties:
                      itemGroupId:
                        type: string
                        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
                      quantity:
                        type: number
                        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:
                        type: string
                        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
                      inventorySiteId:
                        type: string
                        description: >-
                          The site location where inventory for the item group
                          associated with this item group line is stored.
                        example: 80000001-1234567890
                      inventorySiteLocationId:
                        type: string
                        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
                      customFields:
                        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
                        minItems: 1
                        description: >-
                          The custom fields for the item group line object,
                          added as user-defined data extensions, not included in
                          the standard QuickBooks object.
                    required:
                      - itemGroupId
                    additionalProperties: false
                  minItems: 1
                  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.
              required:
                - bankAccountId
                - transactionDate
              additionalProperties: false
      responses:
        '200':
          description: Returns the newly created check.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: path
          name: id
          description: The QuickBooks-assigned unique identifier of the check to retrieve.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the check to
              retrieve.
            example: 123ABC-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns the specified check.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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.
      security:
        - BearerAuth: []
      parameters:
        - in: path
          name: id
          description: The QuickBooks-assigned unique identifier of the check to update.
          schema:
            type: string
            description: The QuickBooks-assigned unique identifier of the check to update.
            example: 123ABC-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      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:
                  type: string
                  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
                payeeId:
                  type: string
                  description: The person or company who will receive this check.
                  example: 80000001-1234567890
                refNumber:
                  type: string
                  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'
                memo:
                  type: string
                  description: The memo that is printed on this check.
                  example: Payment for office supplies - Invoice INV-1234
                address:
                  type: object
                  properties:
                    line1:
                      type: string
                      maxLength: 41
                      description: >-
                        The first line of the address (e.g., street, PO Box, or
                        company name).


                        Maximum length: 41 characters.
                      example: Conductor Labs Inc.
                    line2:
                      type: string
                      maxLength: 41
                      description: >-
                        The second line of the address, if needed (e.g.,
                        apartment, suite, unit, or building).


                        Maximum length: 41 characters.
                      example: 540 Market St.
                    line3:
                      type: string
                      maxLength: 41
                      description: |-
                        The third line of the address, if needed.

                        Maximum length: 41 characters.
                      example: Suite 100
                    line4:
                      type: string
                      maxLength: 41
                      description: |-
                        The fourth line of the address, if needed.

                        Maximum length: 41 characters.
                      example: ''
                    line5:
                      type: string
                      maxLength: 41
                      description: |-
                        The fifth line of the address, if needed.

                        Maximum length: 41 characters.
                      example: ''
                    city:
                      type: string
                      maxLength: 31
                      description: >-
                        The city, district, suburb, town, or village name of the
                        address.


                        Maximum length: 31 characters.
                      example: San Francisco
                    state:
                      type: string
                      maxLength: 21
                      description: >-
                        The state, county, province, or region name of the
                        address.


                        Maximum length: 21 characters.
                      example: CA
                    postalCode:
                      type: string
                      maxLength: 13
                      description: |-
                        The postal code or ZIP code of the address.

                        Maximum length: 13 characters.
                      example: '94110'
                    country:
                      type: string
                      description: The country name of the address.
                      example: United States
                    note:
                      type: string
                      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
                  additionalProperties: false
                  description: The address that is printed on the check.
                isQueuedForPrint:
                  type: boolean
                  description: >-
                    Indicates whether this check is included in the queue of
                    documents for QuickBooks to print.
                  example: true
                salesTaxCodeId:
                  type: string
                  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. If QuickBooks is not set up to charge sales tax
                    (via the "Do You Charge Sales Tax?" preference), it will
                    assign the default non-taxable code to all sales.
                  example: 80000001-1234567890
                exchangeRate:
                  type: number
                  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
                applyToTransactions:
                  type: array
                  items:
                    type: object
                    properties:
                      transactionId:
                        type: string
                        description: The ID of the transaction to be paid by this check.
                        example: 123ABC-1234567890
                      amount:
                        type: string
                        description: >-
                          The monetary amount from this check to apply to the
                          specified transaction, represented as a decimal
                          string.
                        example: '1000.00'
                    required:
                      - transactionId
                    additionalProperties: false
                  minItems: 1
                  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.
                clearExpenseLines:
                  type: boolean
                  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
                expenseLines:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                        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:
                        type: string
                        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
                      amount:
                        type: string
                        description: >-
                          The monetary amount of this expense line, represented
                          as a decimal string.
                        example: '1000.00'
                      memo:
                        type: string
                        description: A memo or note for this expense line.
                        example: New office chair
                      payeeId:
                        type: string
                        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
                      classId:
                        type: string
                        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
                      salesTaxCodeId:
                        type: string
                        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. If QuickBooks is not set up to charge
                          sales tax (via the "Do You Charge Sales Tax?"
                          preference), it will assign the default non-taxable
                          code to all sales.
                        example: 80000001-1234567890
                      billingStatus:
                        type: string
                        enum:
                          - billable
                          - has_been_billed
                          - not_billable
                        description: The billing status of this expense line.
                        example: billable
                      salesRepresentativeId:
                        type: string
                        description: >-
                          The expense line's sales representative. Sales
                          representatives can be employees, vendors, or other
                          names in QuickBooks.
                        example: 80000001-1234567890
                    required:
                      - id
                    additionalProperties: false
                  minItems: 1
                  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.
                clearItemLines:
                  type: boolean
                  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
                itemLines:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                        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:
                        type: string
                        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
                      inventorySiteId:
                        type: string
                        description: >-
                          The site location where inventory for the item
                          associated with this item line is stored.
                        example: 80000001-1234567890
                      inventorySiteLocationId:
                        type: string
                        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
                      serialNumber:
                        type: string
                        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:
                        type: string
                        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:
                        type: string
                        format: date
                        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'
                      description:
                        type: string
                        description: A description of this item line.
                        example: High-quality widget with custom engraving
                      quantity:
                        type: number
                        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:
                        type: string
                        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
                      overrideUnitOfMeasureSetId:
                        type: string
                        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
                      cost:
                        type: string
                        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:
                        type: string
                        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'
                      customerId:
                        type: string
                        description: >-
                          The customer or customer-job associated with this item
                          line.
                        example: 80000001-1234567890
                      classId:
                        type: string
                        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
                      salesTaxCodeId:
                        type: string
                        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. If QuickBooks is not set up to charge
                          sales tax (via the "Do You Charge Sales Tax?"
                          preference), it will assign the default non-taxable
                          code to all sales.
                        example: 80000001-1234567890
                      billingStatus:
                        type: string
                        enum:
                          - billable
                          - has_been_billed
                          - not_billable
                        description: The billing status of this item line.
                        example: billable
                      overrideItemAccountId:
                        type: string
                        description: >-
                          The account to use for this item line, overriding the
                          default account associated with the item.
                        example: 80000001-1234567890
                      salesRepresentativeId:
                        type: string
                        description: >-
                          The item line's sales representative. Sales
                          representatives can be employees, vendors, or other
                          names in QuickBooks.
                        example: 80000001-1234567890
                    required:
                      - id
                    additionalProperties: false
                  minItems: 1
                  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.
                itemGroupLines:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                        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:
                        type: string
                        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
                      quantity:
                        type: number
                        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:
                        type: string
                        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
                      overrideUnitOfMeasureSetId:
                        type: string
                        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
                      itemLines:
                        type: array
                        items:
                          type: object
                          properties:
                            id:
                              type: string
                              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:
                              type: string
                              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
                            inventorySiteId:
                              type: string
                              description: >-
                                The site location where inventory for the item
                                associated with this item line is stored.
                              example: 80000001-1234567890
                            inventorySiteLocationId:
                              type: string
                              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
                            serialNumber:
                              type: string
                              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:
                              type: string
                              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:
                              type: string
                              format: date
                              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'
                            description:
                              type: string
                              description: A description of this item line.
                              example: High-quality widget with custom engraving
                            quantity:
                              type: number
                              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:
                              type: string
                              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
                            overrideUnitOfMeasureSetId:
                              type: string
                              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
                            cost:
                              type: string
                              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:
                              type: string
                              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'
                            customerId:
                              type: string
                              description: >-
                                The customer or customer-job associated with
                                this item line.
                              example: 80000001-1234567890
                            classId:
                              type: string
                              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
                            salesTaxCodeId:
                              type: string
                              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. If QuickBooks is not set
                                up to charge sales tax (via the "Do You Charge
                                Sales Tax?" preference), it will assign the
                                default non-taxable code to all sales.
                              example: 80000001-1234567890
                            billingStatus:
                              type: string
                              enum:
                                - billable
                                - has_been_billed
                                - not_billable
                              description: The billing status of this item line.
                              example: billable
                            overrideItemAccountId:
                              type: string
                              description: >-
                                The account to use for this item line,
                                overriding the default account associated with
                                the item.
                              example: 80000001-1234567890
                            salesRepresentativeId:
                              type: string
                              description: >-
                                The item line's sales representative. Sales
                                representatives can be employees, vendors, or
                                other names in QuickBooks.
                              example: 80000001-1234567890
                          required:
                            - id
                          additionalProperties: false
                        minItems: 1
                        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.
                    required:
                      - id
                    additionalProperties: false
                  minItems: 1
                  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.
              required:
                - revisionNumber
              additionalProperties: false
      responses:
        '200':
          description: Returns the updated check.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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 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: path
          name: id
          description: The QuickBooks-assigned unique identifier of the check to delete.
          schema:
            type: string
            description: The QuickBooks-assigned unique identifier of the check to delete.
            example: 123ABC-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: >-
            Returns a confirmation of the deletion with the ID of the deleted
            check.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    description: >-
                      The QuickBooks-assigned unique identifier of the deleted
                      check.
                    example: 123ABC-1234567890
                  objectType:
                    type: string
                    const: qbd_check
                    description: The type of object. This value is always `"qbd_check"`.
                    example: qbd_check
                  refNumber:
                    type:
                      - string
                      - '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/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: query
          name: ids
          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.
          schema:
            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.
            example:
              - 80000001-1234567890
        - in: query
          name: fullNames
          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.
          schema:
            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.
            example:
              - Department:Marketing
        - in: query
          name: limit
          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.
          schema:
            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.
            example: 10
        - in: query
          name: status
          description: Filter for classes that are active, inactive, or both.
          schema:
            type: string
            enum:
              - active
              - all
              - inactive
            default: active
            description: Filter for classes that are active, inactive, or both.
            example: active
        - in: query
          name: updatedAfter
          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.
          schema:
            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.
            example: 2025-01-01T12:34:56.000Z
        - in: query
          name: updatedBefore
          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.
          schema:
            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.
            example: 2025-02-01T12:34:56.000Z
        - in: query
          name: nameContains
          description: >-
            Filter for classes whose `name` contains this substring,
            case-insensitive.


            **NOTE**: If you use this parameter, you cannot also use
            `nameStartsWith` or `nameEndsWith`.
          schema:
            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`.
            example: ABC
        - in: query
          name: nameStartsWith
          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`.
          schema:
            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`.
            example: ABC
        - in: query
          name: nameEndsWith
          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`.
          schema:
            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`.
            example: ABC
        - in: query
          name: nameFrom
          description: >-
            Filter for classes whose `name` is alphabetically greater than or
            equal to this value.
          schema:
            type: string
            description: >-
              Filter for classes whose `name` is alphabetically greater than or
              equal to this value.
            example: A
        - in: query
          name: nameTo
          description: >-
            Filter for classes whose `name` is alphabetically less than or equal
            to this value.
          schema:
            type: string
            description: >-
              Filter for classes whose `name` is alphabetically less than or
              equal to this value.
            example: Z
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns a list of classes.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          content:
            application/json:
              schema:
                type: object
                properties:
                  objectType:
                    type: string
                    const: list
                    description: The type of object. This value is always `"list"`.
                    example: 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
          description: The ID of the End-User to receive this request.
          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
      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:
                  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
                  default: true
                parentId:
                  type: string
                  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
              required:
                - name
              additionalProperties: false
      responses:
        '200':
          description: Returns the newly created class.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: path
          name: id
          description: The QuickBooks-assigned unique identifier of the class to retrieve.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the class to
              retrieve.
            example: 80000001-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns the specified class.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: path
          name: id
          description: The QuickBooks-assigned unique identifier of the class to update.
          schema:
            type: string
            description: The QuickBooks-assigned unique identifier of the class to update.
            example: 80000001-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      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:
                  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:
                  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
                parentId:
                  type: string
                  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
              required:
                - revisionNumber
              additionalProperties: false
      responses:
        '200':
          description: Returns the updated class.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns an object with the company file's information.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: query
          name: ids
          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.
          schema:
            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.
            example:
              - 123ABC-1234567890
        - in: query
          name: refNumbers
          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.
          schema:
            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.
            example:
              - CREDIT CARD CHARGE-1234
        - in: query
          name: limit
          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.
          schema:
            type: integer
            minimum: 1
            maximum: 150
            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
        - in: query
          name: cursor
          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.
          schema:
            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.
            example: 12345678-abcd-abcd-example-1234567890ab
        - in: query
          name: updatedAfter
          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.
          schema:
            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.
            example: 2025-01-01T12:34:56.000Z
        - in: query
          name: updatedBefore
          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.
          schema:
            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.
            example: 2025-02-01T12:34:56.000Z
        - in: query
          name: transactionDateFrom
          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`).
          schema:
            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`).
            example: '2025-01-01'
        - in: query
          name: transactionDateTo
          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`).
          schema:
            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`).
            example: '2025-02-01'
        - in: query
          name: payeeIds
          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.
          schema:
            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.
            example:
              - 80000001-1234567890
        - in: query
          name: accountIds
          description: Filter for credit card charges associated with these accounts.
          schema:
            type: array
            items:
              type: string
            description: Filter for credit card charges associated with these accounts.
            example:
              - 80000001-1234567890
        - in: query
          name: refNumberContains
          description: >-
            Filter for credit card charges whose `refNumber` contains this
            substring.


            **NOTE**: If you use this parameter, you cannot also use
            `refNumberStartsWith` or `refNumberEndsWith`.
          schema:
            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`.
            example: CARD-1234
        - in: query
          name: refNumberStartsWith
          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`.
          schema:
            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`.
            example: CARD
        - in: query
          name: refNumberEndsWith
          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`.
          schema:
            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`.
            example: '1234'
        - in: query
          name: refNumberFrom
          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.
          schema:
            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.
            example: CARD-0001
        - in: query
          name: refNumberTo
          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.
          schema:
            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.
            example: CARD-9999
        - in: query
          name: currencyIds
          description: Filter for credit card charges in these currencies.
          schema:
            type: array
            items:
              type: string
            description: Filter for credit card charges in these currencies.
            example:
              - 80000001-1234567890
        - in: query
          name: includeLineItems
          description: Whether to include line items in the response. Defaults to `true`.
          schema:
            type: boolean
            description: Whether to include line items in the response. Defaults to `true`.
            example: true
            default: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns a list of credit card charges.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          content:
            application/json:
              schema:
                type: object
                properties:
                  objectType:
                    type: string
                    const: list
                    description: The type of object. This value is always `"list"`.
                    example: 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:
                    type:
                      - string
                      - '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:
                    type:
                      - number
                      - '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
          description: The ID of the End-User to receive this request.
          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
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                accountId:
                  type: string
                  description: >-
                    The bank or credit card account to which money is owed for
                    this credit card charge.
                  example: 80000001-1234567890
                payeeId:
                  type: string
                  description: >-
                    The vendor or company from whom merchandise or services were
                    purchased for this credit card charge.
                  example: 80000001-1234567890
                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:
                  type: string
                  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).
                  example: CARD-1234
                memo:
                  type: string
                  description: A memo or note for this credit card charge.
                  example: Office supplies for Q3 marketing campaign
                salesTaxCodeId:
                  type: string
                  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. If QuickBooks is not set up to charge sales tax
                    (via the "Do You Charge Sales Tax?" preference), it will
                    assign the default non-taxable code to all sales.
                  example: 80000001-1234567890
                exchangeRate:
                  type: number
                  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
                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:
                  type: array
                  items:
                    type: object
                    properties:
                      accountId:
                        type: string
                        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
                      amount:
                        type: string
                        description: >-
                          The monetary amount of this expense line, represented
                          as a decimal string.
                        example: '1000.00'
                      memo:
                        type: string
                        description: A memo or note for this expense line.
                        example: New office chair
                      payeeId:
                        type: string
                        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
                      classId:
                        type: string
                        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
                      salesTaxCodeId:
                        type: string
                        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. If QuickBooks is not set up to charge
                          sales tax (via the "Do You Charge Sales Tax?"
                          preference), it will assign the default non-taxable
                          code to all sales.
                        example: 80000001-1234567890
                      billingStatus:
                        type: string
                        enum:
                          - billable
                          - has_been_billed
                          - not_billable
                        description: The billing status of this expense line.
                        example: billable
                        default: billable
                      salesRepresentativeId:
                        type: string
                        description: >-
                          The expense line's sales representative. Sales
                          representatives can be employees, vendors, or other
                          names in QuickBooks.
                        example: 80000001-1234567890
                      customFields:
                        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
                        minItems: 1
                        description: >-
                          The custom fields for the expense line object, added
                          as user-defined data extensions, not included in the
                          standard QuickBooks object.
                    additionalProperties: false
                  minItems: 1
                  description: >-
                    The credit card charge's expense lines, each representing
                    one line in this expense.
                itemLines:
                  type: array
                  items:
                    type: object
                    properties:
                      itemId:
                        type: string
                        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
                      inventorySiteId:
                        type: string
                        description: >-
                          The site location where inventory for the item
                          associated with this item line is stored.
                        example: 80000001-1234567890
                      inventorySiteLocationId:
                        type: string
                        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
                      serialNumber:
                        type: string
                        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:
                        type: string
                        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:
                        type: string
                        format: date
                        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'
                      description:
                        type: string
                        description: A description of this item line.
                        example: High-quality widget with custom engraving
                      quantity:
                        type: number
                        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:
                        type: string
                        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
                      cost:
                        type: string
                        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:
                        type: string
                        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'
                      customerId:
                        type: string
                        description: >-
                          The customer or customer-job associated with this item
                          line.
                        example: 80000001-1234567890
                      classId:
                        type: string
                        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
                      salesTaxCodeId:
                        type: string
                        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. If QuickBooks is not set up to charge
                          sales tax (via the "Do You Charge Sales Tax?"
                          preference), it will assign the default non-taxable
                          code to all sales.
                        example: 80000001-1234567890
                      billingStatus:
                        type: string
                        enum:
                          - billable
                          - has_been_billed
                          - not_billable
                        description: The billing status of this item line.
                        example: billable
                        default: billable
                      overrideItemAccountId:
                        type: string
                        description: >-
                          The account to use for this item line, overriding the
                          default account associated with the item.
                        example: 80000001-1234567890
                      linkToTransactionLine:
                        type: object
                        properties:
                          transactionId:
                            type: string
                            description: >-
                              The ID of the transaction to which to link this
                              transaction.
                            example: 123ABC-1234567890
                          transactionLineId:
                            type: string
                            description: >-
                              The ID of the transaction line to which to link
                              this transaction.
                            example: 456DEF-1234567890
                        required:
                          - transactionId
                          - transactionLineId
                        additionalProperties: false
                        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.
                      salesRepresentativeId:
                        type: string
                        description: >-
                          The item line's sales representative. Sales
                          representatives can be employees, vendors, or other
                          names in QuickBooks.
                        example: 80000001-1234567890
                      customFields:
                        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
                        minItems: 1
                        description: >-
                          The custom fields for the item line object, added as
                          user-defined data extensions, not included in the
                          standard QuickBooks object.
                    additionalProperties: false
                  minItems: 1
                  description: >-
                    The credit card charge's item lines, each representing the
                    purchase of a specific item or service.
                itemGroupLines:
                  type: array
                  items:
                    type: object
                    properties:
                      itemGroupId:
                        type: string
                        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
                      quantity:
                        type: number
                        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:
                        type: string
                        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
                      inventorySiteId:
                        type: string
                        description: >-
                          The site location where inventory for the item group
                          associated with this item group line is stored.
                        example: 80000001-1234567890
                      inventorySiteLocationId:
                        type: string
                        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
                      customFields:
                        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
                        minItems: 1
                        description: >-
                          The custom fields for the item group line object,
                          added as user-defined data extensions, not included in
                          the standard QuickBooks object.
                    required:
                      - itemGroupId
                    additionalProperties: false
                  minItems: 1
                  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.
              required:
                - accountId
                - transactionDate
              additionalProperties: false
      responses:
        '200':
          description: Returns the newly created credit card charge.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the credit card charge
            to retrieve.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the credit card
              charge to retrieve.
            example: 123ABC-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns the specified credit card charge.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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.
      security:
        - BearerAuth: []
      parameters:
        - in: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the credit card charge
            to update.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the credit card
              charge to update.
            example: 123ABC-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      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:
                  type: string
                  description: >-
                    The bank or credit card account to which money is owed for
                    this credit card charge.
                  example: 80000001-1234567890
                payeeId:
                  type: string
                  description: >-
                    The vendor or company from whom merchandise or services were
                    purchased for this credit card charge.
                  example: 80000001-1234567890
                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:
                  type: string
                  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:
                  type: string
                  description: A memo or note for this credit card charge.
                  example: Office supplies for Q3 marketing campaign
                salesTaxCodeId:
                  type: string
                  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. If QuickBooks is not set up to charge sales tax
                    (via the "Do You Charge Sales Tax?" preference), it will
                    assign the default non-taxable code to all sales.
                  example: 80000001-1234567890
                exchangeRate:
                  type: number
                  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
                clearExpenseLines:
                  type: boolean
                  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
                expenseLines:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                        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:
                        type: string
                        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
                      amount:
                        type: string
                        description: >-
                          The monetary amount of this expense line, represented
                          as a decimal string.
                        example: '1000.00'
                      memo:
                        type: string
                        description: A memo or note for this expense line.
                        example: New office chair
                      payeeId:
                        type: string
                        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
                      classId:
                        type: string
                        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
                      salesTaxCodeId:
                        type: string
                        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. If QuickBooks is not set up to charge
                          sales tax (via the "Do You Charge Sales Tax?"
                          preference), it will assign the default non-taxable
                          code to all sales.
                        example: 80000001-1234567890
                      billingStatus:
                        type: string
                        enum:
                          - billable
                          - has_been_billed
                          - not_billable
                        description: The billing status of this expense line.
                        example: billable
                      salesRepresentativeId:
                        type: string
                        description: >-
                          The expense line's sales representative. Sales
                          representatives can be employees, vendors, or other
                          names in QuickBooks.
                        example: 80000001-1234567890
                    required:
                      - id
                    additionalProperties: false
                  minItems: 1
                  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.
                clearItemLines:
                  type: boolean
                  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
                itemLines:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                        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:
                        type: string
                        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
                      inventorySiteId:
                        type: string
                        description: >-
                          The site location where inventory for the item
                          associated with this item line is stored.
                        example: 80000001-1234567890
                      inventorySiteLocationId:
                        type: string
                        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
                      serialNumber:
                        type: string
                        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:
                        type: string
                        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:
                        type: string
                        format: date
                        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'
                      description:
                        type: string
                        description: A description of this item line.
                        example: High-quality widget with custom engraving
                      quantity:
                        type: number
                        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:
                        type: string
                        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
                      overrideUnitOfMeasureSetId:
                        type: string
                        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
                      cost:
                        type: string
                        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:
                        type: string
                        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'
                      customerId:
                        type: string
                        description: >-
                          The customer or customer-job associated with this item
                          line.
                        example: 80000001-1234567890
                      classId:
                        type: string
                        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
                      salesTaxCodeId:
                        type: string
                        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. If QuickBooks is not set up to charge
                          sales tax (via the "Do You Charge Sales Tax?"
                          preference), it will assign the default non-taxable
                          code to all sales.
                        example: 80000001-1234567890
                      billingStatus:
                        type: string
                        enum:
                          - billable
                          - has_been_billed
                          - not_billable
                        description: The billing status of this item line.
                        example: billable
                      overrideItemAccountId:
                        type: string
                        description: >-
                          The account to use for this item line, overriding the
                          default account associated with the item.
                        example: 80000001-1234567890
                      salesRepresentativeId:
                        type: string
                        description: >-
                          The item line's sales representative. Sales
                          representatives can be employees, vendors, or other
                          names in QuickBooks.
                        example: 80000001-1234567890
                    required:
                      - id
                    additionalProperties: false
                  minItems: 1
                  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.
                itemGroupLines:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                        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:
                        type: string
                        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
                      quantity:
                        type: number
                        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:
                        type: string
                        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
                      overrideUnitOfMeasureSetId:
                        type: string
                        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
                      itemLines:
                        type: array
                        items:
                          type: object
                          properties:
                            id:
                              type: string
                              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:
                              type: string
                              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
                            inventorySiteId:
                              type: string
                              description: >-
                                The site location where inventory for the item
                                associated with this item line is stored.
                              example: 80000001-1234567890
                            inventorySiteLocationId:
                              type: string
                              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
                            serialNumber:
                              type: string
                              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:
                              type: string
                              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:
                              type: string
                              format: date
                              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'
                            description:
                              type: string
                              description: A description of this item line.
                              example: High-quality widget with custom engraving
                            quantity:
                              type: number
                              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:
                              type: string
                              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
                            overrideUnitOfMeasureSetId:
                              type: string
                              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
                            cost:
                              type: string
                              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:
                              type: string
                              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'
                            customerId:
                              type: string
                              description: >-
                                The customer or customer-job associated with
                                this item line.
                              example: 80000001-1234567890
                            classId:
                              type: string
                              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
                            salesTaxCodeId:
                              type: string
                              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. If QuickBooks is not set
                                up to charge sales tax (via the "Do You Charge
                                Sales Tax?" preference), it will assign the
                                default non-taxable code to all sales.
                              example: 80000001-1234567890
                            billingStatus:
                              type: string
                              enum:
                                - billable
                                - has_been_billed
                                - not_billable
                              description: The billing status of this item line.
                              example: billable
                            overrideItemAccountId:
                              type: string
                              description: >-
                                The account to use for this item line,
                                overriding the default account associated with
                                the item.
                              example: 80000001-1234567890
                            salesRepresentativeId:
                              type: string
                              description: >-
                                The item line's sales representative. Sales
                                representatives can be employees, vendors, or
                                other names in QuickBooks.
                              example: 80000001-1234567890
                          required:
                            - id
                          additionalProperties: false
                        minItems: 1
                        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.
                    required:
                      - id
                    additionalProperties: false
                  minItems: 1
                  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.
              required:
                - revisionNumber
              additionalProperties: false
      responses:
        '200':
          description: Returns the updated credit card charge.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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 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: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the credit card charge
            to delete.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the credit card
              charge to delete.
            example: 123ABC-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: >-
            Returns a confirmation of the deletion with the ID of the deleted
            credit card charge.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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:
                    type: string
                    const: qbd_credit_card_charge
                    description: >-
                      The type of object. This value is always
                      `"qbd_credit_card_charge"`.
                    example: qbd_credit_card_charge
                  refNumber:
                    type:
                      - string
                      - '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-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: query
          name: ids
          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.
          schema:
            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.
            example:
              - 123ABC-1234567890
        - in: query
          name: refNumbers
          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.
          schema:
            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.
            example:
              - CREDIT CARD CREDIT-1234
        - in: query
          name: limit
          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.
          schema:
            type: integer
            minimum: 1
            maximum: 150
            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
        - in: query
          name: cursor
          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.
          schema:
            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.
            example: 12345678-abcd-abcd-example-1234567890ab
        - in: query
          name: updatedAfter
          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.
          schema:
            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.
            example: 2025-01-01T12:34:56.000Z
        - in: query
          name: updatedBefore
          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.
          schema:
            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.
            example: 2025-02-01T12:34:56.000Z
        - in: query
          name: transactionDateFrom
          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`).
          schema:
            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`).
            example: '2025-01-01'
        - in: query
          name: transactionDateTo
          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`).
          schema:
            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`).
            example: '2025-02-01'
        - in: query
          name: payeeIds
          description: >-
            Filter for credit card credits received from these payees. These are
            the vendors or companies from whom these credit card credits were
            received.
          schema:
            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.
            example:
              - 80000001-1234567890
        - in: query
          name: accountIds
          description: Filter for credit card credits associated with these accounts.
          schema:
            type: array
            items:
              type: string
            description: Filter for credit card credits associated with these accounts.
            example:
              - 80000001-1234567890
        - in: query
          name: refNumberContains
          description: >-
            Filter for credit card credits whose `refNumber` contains this
            substring.


            **NOTE**: If you use this parameter, you cannot also use
            `refNumberStartsWith` or `refNumberEndsWith`.
          schema:
            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`.
            example: CREDIT-1234
        - in: query
          name: refNumberStartsWith
          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`.
          schema:
            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`.
            example: CREDIT
        - in: query
          name: refNumberEndsWith
          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`.
          schema:
            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`.
            example: '1234'
        - in: query
          name: refNumberFrom
          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.
          schema:
            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.
            example: CREDIT-0001
        - in: query
          name: refNumberTo
          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.
          schema:
            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.
            example: CREDIT-9999
        - in: query
          name: currencyIds
          description: Filter for credit card credits in these currencies.
          schema:
            type: array
            items:
              type: string
            description: Filter for credit card credits in these currencies.
            example:
              - 80000001-1234567890
        - in: query
          name: includeLineItems
          description: Whether to include line items in the response. Defaults to `true`.
          schema:
            type: boolean
            description: Whether to include line items in the response. Defaults to `true`.
            example: true
            default: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns a list of credit card credits.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          content:
            application/json:
              schema:
                type: object
                properties:
                  objectType:
                    type: string
                    const: list
                    description: The type of object. This value is always `"list"`.
                    example: 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:
                    type:
                      - string
                      - '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:
                    type:
                      - number
                      - '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
          description: The ID of the End-User to receive this request.
          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
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                accountId:
                  type: string
                  description: >-
                    The bank or credit card account to which this credit card
                    credit is posted.
                  example: 80000001-1234567890
                payeeId:
                  type: string
                  description: >-
                    The vendor or company from whom this credit card credit was
                    received for purchased merchandise or services.
                  example: 80000001-1234567890
                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:
                  type: string
                  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).
                  example: CREDIT-1234
                memo:
                  type: string
                  description: A memo or note for this credit card credit.
                  example: Refund for returned office supplies
                salesTaxCodeId:
                  type: string
                  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. If QuickBooks is not set up to charge sales tax
                    (via the "Do You Charge Sales Tax?" preference), it will
                    assign the default non-taxable code to all sales.
                  example: 80000001-1234567890
                exchangeRate:
                  type: number
                  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
                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:
                  type: array
                  items:
                    type: object
                    properties:
                      accountId:
                        type: string
                        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
                      amount:
                        type: string
                        description: >-
                          The monetary amount of this expense line, represented
                          as a decimal string.
                        example: '1000.00'
                      memo:
                        type: string
                        description: A memo or note for this expense line.
                        example: New office chair
                      payeeId:
                        type: string
                        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
                      classId:
                        type: string
                        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
                      salesTaxCodeId:
                        type: string
                        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. If QuickBooks is not set up to charge
                          sales tax (via the "Do You Charge Sales Tax?"
                          preference), it will assign the default non-taxable
                          code to all sales.
                        example: 80000001-1234567890
                      billingStatus:
                        type: string
                        enum:
                          - billable
                          - has_been_billed
                          - not_billable
                        description: The billing status of this expense line.
                        example: billable
                        default: billable
                      salesRepresentativeId:
                        type: string
                        description: >-
                          The expense line's sales representative. Sales
                          representatives can be employees, vendors, or other
                          names in QuickBooks.
                        example: 80000001-1234567890
                      customFields:
                        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
                        minItems: 1
                        description: >-
                          The custom fields for the expense line object, added
                          as user-defined data extensions, not included in the
                          standard QuickBooks object.
                    additionalProperties: false
                  minItems: 1
                  description: >-
                    The credit card credit's expense lines, each representing
                    one line in this expense.
                itemLines:
                  type: array
                  items:
                    type: object
                    properties:
                      itemId:
                        type: string
                        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
                      inventorySiteId:
                        type: string
                        description: >-
                          The site location where inventory for the item
                          associated with this item line is stored.
                        example: 80000001-1234567890
                      inventorySiteLocationId:
                        type: string
                        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
                      serialNumber:
                        type: string
                        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:
                        type: string
                        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:
                        type: string
                        format: date
                        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'
                      description:
                        type: string
                        description: A description of this item line.
                        example: High-quality widget with custom engraving
                      quantity:
                        type: number
                        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:
                        type: string
                        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
                      cost:
                        type: string
                        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:
                        type: string
                        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'
                      customerId:
                        type: string
                        description: >-
                          The customer or customer-job associated with this item
                          line.
                        example: 80000001-1234567890
                      classId:
                        type: string
                        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
                      salesTaxCodeId:
                        type: string
                        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. If QuickBooks is not set up to charge
                          sales tax (via the "Do You Charge Sales Tax?"
                          preference), it will assign the default non-taxable
                          code to all sales.
                        example: 80000001-1234567890
                      billingStatus:
                        type: string
                        enum:
                          - billable
                          - has_been_billed
                          - not_billable
                        description: The billing status of this item line.
                        example: billable
                        default: billable
                      overrideItemAccountId:
                        type: string
                        description: >-
                          The account to use for this item line, overriding the
                          default account associated with the item.
                        example: 80000001-1234567890
                      linkToTransactionLine:
                        type: object
                        properties:
                          transactionId:
                            type: string
                            description: >-
                              The ID of the transaction to which to link this
                              transaction.
                            example: 123ABC-1234567890
                          transactionLineId:
                            type: string
                            description: >-
                              The ID of the transaction line to which to link
                              this transaction.
                            example: 456DEF-1234567890
                        required:
                          - transactionId
                          - transactionLineId
                        additionalProperties: false
                        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.
                      salesRepresentativeId:
                        type: string
                        description: >-
                          The item line's sales representative. Sales
                          representatives can be employees, vendors, or other
                          names in QuickBooks.
                        example: 80000001-1234567890
                      customFields:
                        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
                        minItems: 1
                        description: >-
                          The custom fields for the item line object, added as
                          user-defined data extensions, not included in the
                          standard QuickBooks object.
                    additionalProperties: false
                  minItems: 1
                  description: >-
                    The credit card credit's item lines, each representing the
                    purchase of a specific item or service.
                itemGroupLines:
                  type: array
                  items:
                    type: object
                    properties:
                      itemGroupId:
                        type: string
                        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
                      quantity:
                        type: number
                        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:
                        type: string
                        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
                      inventorySiteId:
                        type: string
                        description: >-
                          The site location where inventory for the item group
                          associated with this item group line is stored.
                        example: 80000001-1234567890
                      inventorySiteLocationId:
                        type: string
                        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
                      customFields:
                        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
                        minItems: 1
                        description: >-
                          The custom fields for the item group line object,
                          added as user-defined data extensions, not included in
                          the standard QuickBooks object.
                    required:
                      - itemGroupId
                    additionalProperties: false
                  minItems: 1
                  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.
              required:
                - accountId
                - transactionDate
              additionalProperties: false
      responses:
        '200':
          description: Returns the newly created credit card credit.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the credit card credit
            to retrieve.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the credit card
              credit to retrieve.
            example: 123ABC-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns the specified credit card credit.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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.
      security:
        - BearerAuth: []
      parameters:
        - in: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the credit card credit
            to update.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the credit card
              credit to update.
            example: 123ABC-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      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:
                  type: string
                  description: >-
                    The bank or credit card account to which this credit card
                    credit is posted.
                  example: 80000001-1234567890
                payeeId:
                  type: string
                  description: >-
                    The vendor or company from whom this credit card credit was
                    received for purchased merchandise or services.
                  example: 80000001-1234567890
                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:
                  type: string
                  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:
                  type: string
                  description: A memo or note for this credit card credit.
                  example: Refund for returned office supplies
                salesTaxCodeId:
                  type: string
                  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. If QuickBooks is not set up to charge sales tax
                    (via the "Do You Charge Sales Tax?" preference), it will
                    assign the default non-taxable code to all sales.
                  example: 80000001-1234567890
                exchangeRate:
                  type: number
                  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
                clearExpenseLines:
                  type: boolean
                  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
                expenseLines:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                        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:
                        type: string
                        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
                      amount:
                        type: string
                        description: >-
                          The monetary amount of this expense line, represented
                          as a decimal string.
                        example: '1000.00'
                      memo:
                        type: string
                        description: A memo or note for this expense line.
                        example: New office chair
                      payeeId:
                        type: string
                        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
                      classId:
                        type: string
                        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
                      salesTaxCodeId:
                        type: string
                        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. If QuickBooks is not set up to charge
                          sales tax (via the "Do You Charge Sales Tax?"
                          preference), it will assign the default non-taxable
                          code to all sales.
                        example: 80000001-1234567890
                      billingStatus:
                        type: string
                        enum:
                          - billable
                          - has_been_billed
                          - not_billable
                        description: The billing status of this expense line.
                        example: billable
                      salesRepresentativeId:
                        type: string
                        description: >-
                          The expense line's sales representative. Sales
                          representatives can be employees, vendors, or other
                          names in QuickBooks.
                        example: 80000001-1234567890
                    required:
                      - id
                    additionalProperties: false
                  minItems: 1
                  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.
                clearItemLines:
                  type: boolean
                  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
                itemLines:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                        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:
                        type: string
                        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
                      inventorySiteId:
                        type: string
                        description: >-
                          The site location where inventory for the item
                          associated with this item line is stored.
                        example: 80000001-1234567890
                      inventorySiteLocationId:
                        type: string
                        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
                      serialNumber:
                        type: string
                        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:
                        type: string
                        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:
                        type: string
                        format: date
                        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'
                      description:
                        type: string
                        description: A description of this item line.
                        example: High-quality widget with custom engraving
                      quantity:
                        type: number
                        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:
                        type: string
                        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
                      overrideUnitOfMeasureSetId:
                        type: string
                        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
                      cost:
                        type: string
                        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:
                        type: string
                        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'
                      customerId:
                        type: string
                        description: >-
                          The customer or customer-job associated with this item
                          line.
                        example: 80000001-1234567890
                      classId:
                        type: string
                        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
                      salesTaxCodeId:
                        type: string
                        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. If QuickBooks is not set up to charge
                          sales tax (via the "Do You Charge Sales Tax?"
                          preference), it will assign the default non-taxable
                          code to all sales.
                        example: 80000001-1234567890
                      billingStatus:
                        type: string
                        enum:
                          - billable
                          - has_been_billed
                          - not_billable
                        description: The billing status of this item line.
                        example: billable
                      overrideItemAccountId:
                        type: string
                        description: >-
                          The account to use for this item line, overriding the
                          default account associated with the item.
                        example: 80000001-1234567890
                      salesRepresentativeId:
                        type: string
                        description: >-
                          The item line's sales representative. Sales
                          representatives can be employees, vendors, or other
                          names in QuickBooks.
                        example: 80000001-1234567890
                    required:
                      - id
                    additionalProperties: false
                  minItems: 1
                  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.
                itemGroupLines:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                        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:
                        type: string
                        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
                      quantity:
                        type: number
                        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:
                        type: string
                        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
                      overrideUnitOfMeasureSetId:
                        type: string
                        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
                      itemLines:
                        type: array
                        items:
                          type: object
                          properties:
                            id:
                              type: string
                              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:
                              type: string
                              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
                            inventorySiteId:
                              type: string
                              description: >-
                                The site location where inventory for the item
                                associated with this item line is stored.
                              example: 80000001-1234567890
                            inventorySiteLocationId:
                              type: string
                              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
                            serialNumber:
                              type: string
                              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:
                              type: string
                              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:
                              type: string
                              format: date
                              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'
                            description:
                              type: string
                              description: A description of this item line.
                              example: High-quality widget with custom engraving
                            quantity:
                              type: number
                              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:
                              type: string
                              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
                            overrideUnitOfMeasureSetId:
                              type: string
                              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
                            cost:
                              type: string
                              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:
                              type: string
                              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'
                            customerId:
                              type: string
                              description: >-
                                The customer or customer-job associated with
                                this item line.
                              example: 80000001-1234567890
                            classId:
                              type: string
                              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
                            salesTaxCodeId:
                              type: string
                              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. If QuickBooks is not set
                                up to charge sales tax (via the "Do You Charge
                                Sales Tax?" preference), it will assign the
                                default non-taxable code to all sales.
                              example: 80000001-1234567890
                            billingStatus:
                              type: string
                              enum:
                                - billable
                                - has_been_billed
                                - not_billable
                              description: The billing status of this item line.
                              example: billable
                            overrideItemAccountId:
                              type: string
                              description: >-
                                The account to use for this item line,
                                overriding the default account associated with
                                the item.
                              example: 80000001-1234567890
                            salesRepresentativeId:
                              type: string
                              description: >-
                                The item line's sales representative. Sales
                                representatives can be employees, vendors, or
                                other names in QuickBooks.
                              example: 80000001-1234567890
                          required:
                            - id
                          additionalProperties: false
                        minItems: 1
                        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.
                    required:
                      - id
                    additionalProperties: false
                  minItems: 1
                  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.
              required:
                - revisionNumber
              additionalProperties: false
      responses:
        '200':
          description: Returns the updated credit card credit.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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 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: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the credit card credit
            to delete.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the credit card
              credit to delete.
            example: 123ABC-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: >-
            Returns a confirmation of the deletion with the ID of the deleted
            credit card credit.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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:
                    type: string
                    const: qbd_credit_card_credit
                    description: >-
                      The type of object. This value is always
                      `"qbd_credit_card_credit"`.
                    example: qbd_credit_card_credit
                  refNumber:
                    type:
                      - string
                      - '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-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: query
          name: ids
          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.
          schema:
            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.
            example:
              - 123ABC-1234567890
        - in: query
          name: refNumbers
          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.
          schema:
            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.
            example:
              - CREDIT CARD REFUND-1234
        - in: query
          name: limit
          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.
          schema:
            type: integer
            minimum: 1
            maximum: 150
            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
        - in: query
          name: cursor
          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.
          schema:
            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.
            example: 12345678-abcd-abcd-example-1234567890ab
        - in: query
          name: updatedAfter
          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.
          schema:
            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.
            example: 2025-01-01T12:34:56.000Z
        - in: query
          name: updatedBefore
          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.
          schema:
            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.
            example: 2025-02-01T12:34:56.000Z
        - in: query
          name: transactionDateFrom
          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`).
          schema:
            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`).
            example: '2025-01-01'
        - in: query
          name: transactionDateTo
          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`).
          schema:
            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`).
            example: '2025-02-01'
        - in: query
          name: customerIds
          description: Filter for credit card refunds refunded to these customers.
          schema:
            type: array
            items:
              type: string
            description: Filter for credit card refunds refunded to these customers.
            example:
              - 80000001-1234567890
        - in: query
          name: accountIds
          description: Filter for credit card refunds associated with these accounts.
          schema:
            type: array
            items:
              type: string
            description: Filter for credit card refunds associated with these accounts.
            example:
              - 80000001-1234567890
        - in: query
          name: refNumberContains
          description: >-
            Filter for credit card refunds whose `refNumber` contains this
            substring.


            **NOTE**: If you use this parameter, you cannot also use
            `refNumberStartsWith` or `refNumberEndsWith`.
          schema:
            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`.
            example: REFUND-1234
        - in: query
          name: refNumberStartsWith
          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`.
          schema:
            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`.
            example: REFUND
        - in: query
          name: refNumberEndsWith
          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`.
          schema:
            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`.
            example: '1234'
        - in: query
          name: refNumberFrom
          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.
          schema:
            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.
            example: REFUND-0001
        - in: query
          name: refNumberTo
          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.
          schema:
            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.
            example: REFUND-9999
        - in: query
          name: currencyIds
          description: Filter for credit card refunds in these currencies.
          schema:
            type: array
            items:
              type: string
            description: Filter for credit card refunds in these currencies.
            example:
              - 80000001-1234567890
        - in: query
          name: includeLineItems
          description: Whether to include line items in the response. Defaults to `true`.
          schema:
            type: boolean
            description: Whether to include line items in the response. Defaults to `true`.
            example: true
            default: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns a list of credit card refunds.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          content:
            application/json:
              schema:
                type: object
                properties:
                  objectType:
                    type: string
                    const: list
                    description: The type of object. This value is always `"list"`.
                    example: 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:
                    type:
                      - string
                      - '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:
                    type:
                      - number
                      - '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
          description: The ID of the End-User to receive this request.
          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
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                customerId:
                  type: string
                  description: >-
                    The customer or customer-job associated with this credit
                    card refund.
                  example: 80000001-1234567890
                refundFromAccountId:
                  type: string
                  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 will use
                    the default Undeposited Funds account.
                  example: 80000001-1234567890
                receivablesAccountId:
                  type: string
                  description: >-
                    The Accounts-Receivable (A/R) account to which this credit
                    card refund is assigned, used to track the amount owed. If
                    not specified, QuickBooks Desktop will use its default A/R
                    account.


                    **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
                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:
                  type: string
                  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).
                  example: REFUND-1234
                address:
                  type: object
                  properties:
                    line1:
                      type: string
                      maxLength: 41
                      description: >-
                        The first line of the address (e.g., street, PO Box, or
                        company name).


                        Maximum length: 41 characters.
                      example: Conductor Labs Inc.
                    line2:
                      type: string
                      maxLength: 41
                      description: >-
                        The second line of the address, if needed (e.g.,
                        apartment, suite, unit, or building).


                        Maximum length: 41 characters.
                      example: 540 Market St.
                    line3:
                      type: string
                      maxLength: 41
                      description: |-
                        The third line of the address, if needed.

                        Maximum length: 41 characters.
                      example: Suite 100
                    line4:
                      type: string
                      maxLength: 41
                      description: |-
                        The fourth line of the address, if needed.

                        Maximum length: 41 characters.
                      example: ''
                    line5:
                      type: string
                      maxLength: 41
                      description: |-
                        The fifth line of the address, if needed.

                        Maximum length: 41 characters.
                      example: ''
                    city:
                      type: string
                      maxLength: 31
                      description: >-
                        The city, district, suburb, town, or village name of the
                        address.


                        Maximum length: 31 characters.
                      example: San Francisco
                    state:
                      type: string
                      maxLength: 21
                      description: >-
                        The state, county, province, or region name of the
                        address.


                        Maximum length: 21 characters.
                      example: CA
                    postalCode:
                      type: string
                      maxLength: 13
                      description: |-
                        The postal code or ZIP code of the address.

                        Maximum length: 13 characters.
                      example: '94110'
                    country:
                      type: string
                      description: The country name of the address.
                      example: United States
                    note:
                      type: string
                      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
                  additionalProperties: false
                  description: The address that is printed on the credit card refund.
                paymentMethodId:
                  type: string
                  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
                memo:
                  type: string
                  description: A memo or note for this credit card refund.
                  example: Refund to customer for duplicate credit card charge
                creditCardTransaction:
                  type: object
                  properties:
                    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:
                          type: string
                          description: The cardholder's name on the card.
                          example: John Doe
                        address:
                          type: string
                          description: The card's billing address.
                          example: 1234 Main St, Anytown, USA, 12345
                        postalCode:
                          type: string
                          description: The card's billing address ZIP or postal code.
                          example: '12345'
                        commercialCardCode:
                          type: string
                          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:
                          type: string
                          enum:
                            - card_not_present
                            - card_present
                          description: >-
                            Indicates whether this credit card transaction came
                            from a card swipe (`card_present`) or not
                            (`card_not_present`).
                          example: card_not_present
                          default: card_not_present
                        transactionType:
                          type: string
                          enum:
                            - authorization
                            - capture
                            - charge
                            - refund
                            - voice_authorization
                          description: >-
                            The QBMS transaction type from which the current
                            transaction data originated.
                          example: charge
                      required:
                        - number
                        - expirationMonth
                        - expirationYear
                        - name
                      additionalProperties: false
                      description: >-
                        The transaction request data originally supplied for
                        this credit card transaction when using QuickBooks
                        Merchant Services (QBMS).
                    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:
                          type: string
                          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:
                          type: string
                          enum:
                            - fail
                            - not_available
                            - pass
                          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:
                          type: string
                          enum:
                            - fail
                            - not_available
                            - pass
                          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:
                          type: string
                          enum:
                            - fail
                            - not_available
                            - pass
                          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:
                          type: string
                          description: >-
                            An internal ID returned by QuickBooks Merchant
                            Services (QBMS) from the transaction request, needed
                            for the QuickBooks reconciliation feature.
                          example: '1234567890'
                        paymentGroupingCode:
                          type: number
                          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:
                          type: number
                          description: >-
                            An internal value for this credit card transaction,
                            needed for the QuickBooks reconciliation feature.
                          example: 2
                        clientTransactionId:
                          type: string
                          description: >-
                            A value returned from QBMS transactions for future
                            use by the QuickBooks Reconciliation feature.
                          example: '1234567890'
                      required:
                        - statusCode
                        - statusMessage
                        - creditCardTransactionId
                        - merchantAccountNumber
                        - paymentStatus
                        - transactionAuthorizedAt
                      additionalProperties: false
                      description: >-
                        The transaction response data for this credit card
                        transaction when using QuickBooks Merchant Services
                        (QBMS).
                  additionalProperties: false
                  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.
                exchangeRate:
                  type: number
                  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
                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:
                  type: array
                  items:
                    type: object
                    properties:
                      transactionId:
                        type: string
                        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.
                        example: '15.00'
                    required:
                      - transactionId
                      - refundAmount
                    additionalProperties: false
                  minItems: 1
                  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:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the credit card refund
            to retrieve.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the credit card
              refund to retrieve.
            example: 123ABC-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns the specified credit card refund.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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 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: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the credit card refund
            to delete.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the credit card
              refund to delete.
            example: 123ABC-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: >-
            Returns a confirmation of the deletion with the ID of the deleted
            credit card refund.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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:
                    type: string
                    const: qbd_credit_card_refund
                    description: >-
                      The type of object. This value is always
                      `"qbd_credit_card_refund"`.
                    example: qbd_credit_card_refund
                  refNumber:
                    type:
                      - string
                      - '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-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: query
          name: ids
          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.
          schema:
            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.
            example:
              - 123ABC-1234567890
        - in: query
          name: refNumbers
          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.
          schema:
            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.
            example:
              - CREDIT MEMO-1234
        - in: query
          name: limit
          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.
          schema:
            type: integer
            minimum: 1
            maximum: 150
            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
        - in: query
          name: cursor
          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.
          schema:
            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.
            example: 12345678-abcd-abcd-example-1234567890ab
        - in: query
          name: updatedAfter
          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.
          schema:
            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.
            example: 2025-01-01T12:34:56.000Z
        - in: query
          name: updatedBefore
          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.
          schema:
            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.
            example: 2025-02-01T12:34:56.000Z
        - in: query
          name: transactionDateFrom
          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`).
          schema:
            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`).
            example: '2025-01-01'
        - in: query
          name: transactionDateTo
          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`).
          schema:
            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`).
            example: '2025-02-01'
        - in: query
          name: customerIds
          description: >-
            Filter for credit memos created for these customers. These are the
            customers who are owed money.
          schema:
            type: array
            items:
              type: string
            description: >-
              Filter for credit memos created for these customers. These are the
              customers who are owed money.
            example:
              - 80000001-1234567890
        - in: query
          name: accountIds
          description: Filter for credit memos associated with these accounts.
          schema:
            type: array
            items:
              type: string
            description: Filter for credit memos associated with these accounts.
            example:
              - 80000001-1234567890
        - in: query
          name: refNumberContains
          description: >-
            Filter for credit memos whose `refNumber` contains this substring.


            **NOTE**: If you use this parameter, you cannot also use
            `refNumberStartsWith` or `refNumberEndsWith`.
          schema:
            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`.
            example: CM-1234
        - in: query
          name: refNumberStartsWith
          description: >-
            Filter for credit memos whose `refNumber` starts with this
            substring.


            **NOTE**: If you use this parameter, you cannot also use
            `refNumberContains` or `refNumberEndsWith`.
          schema:
            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`.
            example: CM
        - in: query
          name: refNumberEndsWith
          description: >-
            Filter for credit memos whose `refNumber` ends with this substring.


            **NOTE**: If you use this parameter, you cannot also use
            `refNumberContains` or `refNumberStartsWith`.
          schema:
            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`.
            example: '1234'
        - in: query
          name: refNumberFrom
          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.
          schema:
            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.
            example: CM-0001
        - in: query
          name: refNumberTo
          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.
          schema:
            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.
            example: CM-9999
        - in: query
          name: currencyIds
          description: Filter for credit memos in these currencies.
          schema:
            type: array
            items:
              type: string
            description: Filter for credit memos in these currencies.
            example:
              - 80000001-1234567890
        - in: query
          name: includeLineItems
          description: Whether to include line items in the response. Defaults to `true`.
          schema:
            type: boolean
            description: Whether to include line items in the response. Defaults to `true`.
            example: true
            default: true
        - in: query
          name: includeLinkedTransactions
          description: >-
            Whether to include linked transactions in the response. Defaults to
            `false`. For example, a payment linked to the corresponding credit
            memo.
          schema:
            type: boolean
            description: >-
              Whether to include linked transactions in the response. Defaults
              to `false`. For example, a payment linked to the corresponding
              credit memo.
            example: false
            default: false
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns a list of credit memos.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          content:
            application/json:
              schema:
                type: object
                properties:
                  objectType:
                    type: string
                    const: list
                    description: The type of object. This value is always `"list"`.
                    example: 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:
                    type:
                      - string
                      - '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:
                    type:
                      - number
                      - '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
          description: The ID of the End-User to receive this request.
          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
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                customerId:
                  type: string
                  description: >-
                    The customer or customer-job associated with this credit
                    memo.
                  example: 80000001-1234567890
                classId:
                  type: string
                  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
                receivablesAccountId:
                  type: string
                  description: >-
                    The Accounts-Receivable (A/R) account to which this credit
                    memo is assigned, used to track the amount owed. If not
                    specified, QuickBooks Desktop will use its default A/R
                    account.


                    **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
                documentTemplateId:
                  type: string
                  description: >-
                    The predefined template in QuickBooks that determines the
                    layout and formatting for this credit memo when printed or
                    displayed.
                  example: 80000001-1234567890
                transactionDate:
                  type: string
                  format: date
                  description: >-
                    The date of this credit memo, in ISO 8601 format
                    (YYYY-MM-DD).
                  example: '2024-10-01'
                refNumber:
                  type: string
                  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).
                  example: CM-1234
                billingAddress:
                  type: object
                  properties:
                    line1:
                      type: string
                      maxLength: 41
                      description: >-
                        The first line of the address (e.g., street, PO Box, or
                        company name).


                        Maximum length: 41 characters.
                      example: Conductor Labs Inc.
                    line2:
                      type: string
                      maxLength: 41
                      description: >-
                        The second line of the address, if needed (e.g.,
                        apartment, suite, unit, or building).


                        Maximum length: 41 characters.
                      example: 540 Market St.
                    line3:
                      type: string
                      maxLength: 41
                      description: |-
                        The third line of the address, if needed.

                        Maximum length: 41 characters.
                      example: Suite 100
                    line4:
                      type: string
                      maxLength: 41
                      description: |-
                        The fourth line of the address, if needed.

                        Maximum length: 41 characters.
                      example: ''
                    line5:
                      type: string
                      maxLength: 41
                      description: |-
                        The fifth line of the address, if needed.

                        Maximum length: 41 characters.
                      example: ''
                    city:
                      type: string
                      maxLength: 31
                      description: >-
                        The city, district, suburb, town, or village name of the
                        address.


                        Maximum length: 31 characters.
                      example: San Francisco
                    state:
                      type: string
                      maxLength: 21
                      description: >-
                        The state, county, province, or region name of the
                        address.


                        Maximum length: 21 characters.
                      example: CA
                    postalCode:
                      type: string
                      maxLength: 13
                      description: |-
                        The postal code or ZIP code of the address.

                        Maximum length: 13 characters.
                      example: '94110'
                    country:
                      type: string
                      description: The country name of the address.
                      example: United States
                    note:
                      type: string
                      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
                  additionalProperties: false
                  description: The credit memo's billing address.
                shippingAddress:
                  type: object
                  properties:
                    line1:
                      type: string
                      maxLength: 41
                      description: >-
                        The first line of the address (e.g., street, PO Box, or
                        company name).


                        Maximum length: 41 characters.
                      example: Conductor Labs Inc.
                    line2:
                      type: string
                      maxLength: 41
                      description: >-
                        The second line of the address, if needed (e.g.,
                        apartment, suite, unit, or building).


                        Maximum length: 41 characters.
                      example: 540 Market St.
                    line3:
                      type: string
                      maxLength: 41
                      description: |-
                        The third line of the address, if needed.

                        Maximum length: 41 characters.
                      example: Suite 100
                    line4:
                      type: string
                      maxLength: 41
                      description: |-
                        The fourth line of the address, if needed.

                        Maximum length: 41 characters.
                      example: ''
                    line5:
                      type: string
                      maxLength: 41
                      description: |-
                        The fifth line of the address, if needed.

                        Maximum length: 41 characters.
                      example: ''
                    city:
                      type: string
                      maxLength: 31
                      description: >-
                        The city, district, suburb, town, or village name of the
                        address.


                        Maximum length: 31 characters.
                      example: San Francisco
                    state:
                      type: string
                      maxLength: 21
                      description: >-
                        The state, county, province, or region name of the
                        address.


                        Maximum length: 21 characters.
                      example: CA
                    postalCode:
                      type: string
                      maxLength: 13
                      description: |-
                        The postal code or ZIP code of the address.

                        Maximum length: 13 characters.
                      example: '94110'
                    country:
                      type: string
                      description: The country name of the address.
                      example: United States
                    note:
                      type: string
                      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
                  additionalProperties: false
                  description: The credit memo's shipping address.
                isPending:
                  type: boolean
                  description: Indicates whether this credit memo has not been completed.
                  example: false
                purchaseOrderNumber:
                  type: string
                  maxLength: 25
                  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
                termsId:
                  type: string
                  description: >-
                    The credit memo's payment terms, defining when payment is
                    due and any applicable discounts.
                  example: 80000001-1234567890
                dueDate:
                  type: string
                  format: date
                  description: >-
                    The date by which this credit memo must be paid, in ISO 8601
                    format (YYYY-MM-DD).
                  example: '2024-10-31'
                salesRepresentativeId:
                  type: string
                  description: >-
                    The credit memo's sales representative. Sales
                    representatives can be employees, vendors, or other names in
                    QuickBooks.
                  example: 80000001-1234567890
                shipmentOrigin:
                  type: string
                  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:
                  type: string
                  format: date
                  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'
                shippingMethodId:
                  type: string
                  description: >-
                    The shipping method used for this credit memo, such as
                    standard mail or overnight delivery.
                  example: 80000001-1234567890
                salesTaxItemId:
                  type: string
                  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
                memo:
                  type: string
                  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
                customerMessageId:
                  type: string
                  description: The message to display to the customer on the credit memo.
                  example: 80000001-1234567890
                isQueuedForPrint:
                  type: boolean
                  description: >-
                    Indicates whether this credit memo is included in the queue
                    of documents for QuickBooks to print.
                  example: true
                isQueuedForEmail:
                  type: boolean
                  description: >-
                    Indicates whether this credit memo is included in the queue
                    of documents for QuickBooks to email to the customer.
                  example: true
                salesTaxCodeId:
                  type: string
                  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. If QuickBooks is not set up to charge sales tax
                    (via the "Do You Charge Sales Tax?" preference), it will
                    assign the default non-taxable code to all sales.
                  example: 80000001-1234567890
                otherCustomField:
                  type: string
                  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
                exchangeRate:
                  type: number
                  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
                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:
                  type: array
                  items:
                    type: object
                    properties:
                      itemId:
                        type: string
                        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
                      description:
                        type: string
                        description: A description of this credit memo line.
                        example: Return of defective product - Widget Model X123
                      quantity:
                        type: number
                        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:
                        type: string
                        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
                      rate:
                        type: string
                        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:
                        type: string
                        description: >-
                          The price of this credit memo line expressed as a
                          percentage. Typically used for discount or markup
                          items.
                        example: '10.5'
                      priceLevelId:
                        type: string
                        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
                      classId:
                        type: string
                        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
                      amount:
                        type: string
                        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'
                      inventorySiteId:
                        type: string
                        description: >-
                          The site location where inventory for the item
                          associated with this credit memo line is stored.
                        example: 80000001-1234567890
                      inventorySiteLocationId:
                        type: string
                        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
                      serialNumber:
                        type: string
                        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:
                        type: string
                        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
                      serviceDate:
                        type: string
                        format: date
                        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'
                      salesTaxCodeId:
                        type: string
                        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. If QuickBooks is not set up to charge
                          sales tax (via the "Do You Charge Sales Tax?"
                          preference), it will assign the default non-taxable
                          code to all sales.
                        example: 80000001-1234567890
                      overrideItemAccountId:
                        type: string
                        description: >-
                          The account to use for this credit memo line,
                          overriding the default account associated with the
                          item.
                        example: 80000001-1234567890
                      otherCustomField1:
                        type: string
                        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:
                        type: string
                        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:
                          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
                        minItems: 1
                        description: >-
                          The custom fields for the credit memo line object,
                          added as user-defined data extensions, not included in
                          the standard QuickBooks object.
                    additionalProperties: false
                  minItems: 1
                  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.
                lineGroups:
                  type: array
                  items:
                    type: object
                    properties:
                      itemGroupId:
                        type: string
                        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
                      quantity:
                        type: number
                        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:
                        type: string
                        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
                      inventorySiteId:
                        type: string
                        description: >-
                          The site location where inventory for the item group
                          associated with this credit memo line group is stored.
                        example: 80000001-1234567890
                      inventorySiteLocationId:
                        type: string
                        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
                      customFields:
                        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
                        minItems: 1
                        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:
                      - itemGroupId
                    additionalProperties: false
                  minItems: 1
                  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.
              required:
                - customerId
                - transactionDate
              additionalProperties: false
      responses:
        '200':
          description: Returns the newly created credit memo.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the credit memo to
            retrieve.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the credit memo to
              retrieve.
            example: 123ABC-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns the specified credit memo.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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.
      security:
        - BearerAuth: []
      parameters:
        - in: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the credit memo to
            update.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the credit memo to
              update.
            example: 123ABC-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      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:
                  type: string
                  description: >-
                    The customer or customer-job associated with this credit
                    memo.
                  example: 80000001-1234567890
                classId:
                  type: string
                  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
                receivablesAccountId:
                  type: string
                  description: >-
                    The Accounts-Receivable (A/R) account to which this credit
                    memo is assigned, used to track the amount owed. If not
                    specified, QuickBooks Desktop will use its default A/R
                    account.


                    **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
                documentTemplateId:
                  type: string
                  description: >-
                    The predefined template in QuickBooks that determines the
                    layout and formatting for this credit memo when printed or
                    displayed.
                  example: 80000001-1234567890
                transactionDate:
                  type: string
                  format: date
                  description: >-
                    The date of this credit memo, in ISO 8601 format
                    (YYYY-MM-DD).
                  example: '2024-10-01'
                refNumber:
                  type: string
                  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:
                  type: object
                  properties:
                    line1:
                      type: string
                      maxLength: 41
                      description: >-
                        The first line of the address (e.g., street, PO Box, or
                        company name).


                        Maximum length: 41 characters.
                      example: Conductor Labs Inc.
                    line2:
                      type: string
                      maxLength: 41
                      description: >-
                        The second line of the address, if needed (e.g.,
                        apartment, suite, unit, or building).


                        Maximum length: 41 characters.
                      example: 540 Market St.
                    line3:
                      type: string
                      maxLength: 41
                      description: |-
                        The third line of the address, if needed.

                        Maximum length: 41 characters.
                      example: Suite 100
                    line4:
                      type: string
                      maxLength: 41
                      description: |-
                        The fourth line of the address, if needed.

                        Maximum length: 41 characters.
                      example: ''
                    line5:
                      type: string
                      maxLength: 41
                      description: |-
                        The fifth line of the address, if needed.

                        Maximum length: 41 characters.
                      example: ''
                    city:
                      type: string
                      maxLength: 31
                      description: >-
                        The city, district, suburb, town, or village name of the
                        address.


                        Maximum length: 31 characters.
                      example: San Francisco
                    state:
                      type: string
                      maxLength: 21
                      description: >-
                        The state, county, province, or region name of the
                        address.


                        Maximum length: 21 characters.
                      example: CA
                    postalCode:
                      type: string
                      maxLength: 13
                      description: |-
                        The postal code or ZIP code of the address.

                        Maximum length: 13 characters.
                      example: '94110'
                    country:
                      type: string
                      description: The country name of the address.
                      example: United States
                    note:
                      type: string
                      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
                  additionalProperties: false
                  description: The credit memo's billing address.
                shippingAddress:
                  type: object
                  properties:
                    line1:
                      type: string
                      maxLength: 41
                      description: >-
                        The first line of the address (e.g., street, PO Box, or
                        company name).


                        Maximum length: 41 characters.
                      example: Conductor Labs Inc.
                    line2:
                      type: string
                      maxLength: 41
                      description: >-
                        The second line of the address, if needed (e.g.,
                        apartment, suite, unit, or building).


                        Maximum length: 41 characters.
                      example: 540 Market St.
                    line3:
                      type: string
                      maxLength: 41
                      description: |-
                        The third line of the address, if needed.

                        Maximum length: 41 characters.
                      example: Suite 100
                    line4:
                      type: string
                      maxLength: 41
                      description: |-
                        The fourth line of the address, if needed.

                        Maximum length: 41 characters.
                      example: ''
                    line5:
                      type: string
                      maxLength: 41
                      description: |-
                        The fifth line of the address, if needed.

                        Maximum length: 41 characters.
                      example: ''
                    city:
                      type: string
                      maxLength: 31
                      description: >-
                        The city, district, suburb, town, or village name of the
                        address.


                        Maximum length: 31 characters.
                      example: San Francisco
                    state:
                      type: string
                      maxLength: 21
                      description: >-
                        The state, county, province, or region name of the
                        address.


                        Maximum length: 21 characters.
                      example: CA
                    postalCode:
                      type: string
                      maxLength: 13
                      description: |-
                        The postal code or ZIP code of the address.

                        Maximum length: 13 characters.
                      example: '94110'
                    country:
                      type: string
                      description: The country name of the address.
                      example: United States
                    note:
                      type: string
                      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
                  additionalProperties: false
                  description: The credit memo's shipping address.
                isPending:
                  type: boolean
                  description: Indicates whether this credit memo has not been completed.
                  example: false
                purchaseOrderNumber:
                  type: string
                  maxLength: 25
                  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
                termsId:
                  type: string
                  description: >-
                    The credit memo's payment terms, defining when payment is
                    due and any applicable discounts.
                  example: 80000001-1234567890
                dueDate:
                  type: string
                  format: date
                  description: >-
                    The date by which this credit memo must be paid, in ISO 8601
                    format (YYYY-MM-DD).
                  example: '2024-10-31'
                salesRepresentativeId:
                  type: string
                  description: >-
                    The credit memo's sales representative. Sales
                    representatives can be employees, vendors, or other names in
                    QuickBooks.
                  example: 80000001-1234567890
                shipmentOrigin:
                  type: string
                  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:
                  type: string
                  format: date
                  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'
                shippingMethodId:
                  type: string
                  description: >-
                    The shipping method used for this credit memo, such as
                    standard mail or overnight delivery.
                  example: 80000001-1234567890
                salesTaxItemId:
                  type: string
                  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
                memo:
                  type: string
                  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
                customerMessageId:
                  type: string
                  description: The message to display to the customer on the credit memo.
                  example: 80000001-1234567890
                isQueuedForPrint:
                  type: boolean
                  description: >-
                    Indicates whether this credit memo is included in the queue
                    of documents for QuickBooks to print.
                  example: true
                isQueuedForEmail:
                  type: boolean
                  description: >-
                    Indicates whether this credit memo is included in the queue
                    of documents for QuickBooks to email to the customer.
                  example: true
                salesTaxCodeId:
                  type: string
                  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. If QuickBooks is not set up to charge sales tax
                    (via the "Do You Charge Sales Tax?" preference), it will
                    assign the default non-taxable code to all sales.
                  example: 80000001-1234567890
                otherCustomField:
                  type: string
                  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
                exchangeRate:
                  type: number
                  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
                lines:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                        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:
                        type: string
                        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
                      description:
                        type: string
                        description: A description of this credit memo line.
                        example: Return of defective product - Widget Model X123
                      quantity:
                        type: number
                        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:
                        type: string
                        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
                      overrideUnitOfMeasureSetId:
                        type: string
                        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
                      rate:
                        type: string
                        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:
                        type: string
                        description: >-
                          The price of this credit memo line expressed as a
                          percentage. Typically used for discount or markup
                          items.
                        example: '10.5'
                      priceLevelId:
                        type: string
                        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
                      classId:
                        type: string
                        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
                      amount:
                        type: string
                        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'
                      inventorySiteId:
                        type: string
                        description: >-
                          The site location where inventory for the item
                          associated with this credit memo line is stored.
                        example: 80000001-1234567890
                      inventorySiteLocationId:
                        type: string
                        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
                      serialNumber:
                        type: string
                        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:
                        type: string
                        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
                      serviceDate:
                        type: string
                        format: date
                        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'
                      salesTaxCodeId:
                        type: string
                        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. If QuickBooks is not set up to charge
                          sales tax (via the "Do You Charge Sales Tax?"
                          preference), it will assign the default non-taxable
                          code to all sales.
                        example: 80000001-1234567890
                      overrideItemAccountId:
                        type: string
                        description: >-
                          The account to use for this credit memo line,
                          overriding the default account associated with the
                          item.
                        example: 80000001-1234567890
                      otherCustomField1:
                        type: string
                        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:
                        type: string
                        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
                    required:
                      - id
                    additionalProperties: false
                  minItems: 1
                  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.
                lineGroups:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                        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:
                        type: string
                        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
                      quantity:
                        type: number
                        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:
                        type: string
                        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
                      overrideUnitOfMeasureSetId:
                        type: string
                        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
                      lines:
                        type: array
                        items:
                          type: object
                          properties:
                            id:
                              type: string
                              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:
                              type: string
                              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
                            description:
                              type: string
                              description: A description of this credit memo line.
                              example: Return of defective product - Widget Model X123
                            quantity:
                              type: number
                              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:
                              type: string
                              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
                            overrideUnitOfMeasureSetId:
                              type: string
                              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
                            rate:
                              type: string
                              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:
                              type: string
                              description: >-
                                The price of this credit memo line expressed as
                                a percentage. Typically used for discount or
                                markup items.
                              example: '10.5'
                            priceLevelId:
                              type: string
                              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
                            classId:
                              type: string
                              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
                            amount:
                              type: string
                              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'
                            inventorySiteId:
                              type: string
                              description: >-
                                The site location where inventory for the item
                                associated with this credit memo line is stored.
                              example: 80000001-1234567890
                            inventorySiteLocationId:
                              type: string
                              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
                            serialNumber:
                              type: string
                              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:
                              type: string
                              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
                            serviceDate:
                              type: string
                              format: date
                              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'
                            salesTaxCodeId:
                              type: string
                              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. If QuickBooks is not set
                                up to charge sales tax (via the "Do You Charge
                                Sales Tax?" preference), it will assign the
                                default non-taxable code to all sales.
                              example: 80000001-1234567890
                            overrideItemAccountId:
                              type: string
                              description: >-
                                The account to use for this credit memo line,
                                overriding the default account associated with
                                the item.
                              example: 80000001-1234567890
                            otherCustomField1:
                              type: string
                              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:
                              type: string
                              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
                          required:
                            - id
                          additionalProperties: false
                        minItems: 1
                        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.
                    required:
                      - id
                    additionalProperties: false
                  minItems: 1
                  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.
              required:
                - revisionNumber
              additionalProperties: false
      responses:
        '200':
          description: Returns the updated credit memo.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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 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: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the credit memo to
            delete.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the credit memo to
              delete.
            example: 123ABC-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: >-
            Returns a confirmation of the deletion with the ID of the deleted
            credit memo.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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:
                    type: string
                    const: qbd_credit_memo
                    description: >-
                      The type of object. This value is always
                      `"qbd_credit_memo"`.
                    example: qbd_credit_memo
                  refNumber:
                    type:
                      - string
                      - '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/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: query
          name: ids
          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.
          schema:
            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.
            example:
              - 80000001-1234567890
        - in: query
          name: names
          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.
          schema:
            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.
            example:
              - United States Dollar
        - in: query
          name: limit
          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.
          schema:
            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.
            example: 10
        - in: query
          name: status
          description: Filter for currencies that are active, inactive, or both.
          schema:
            type: string
            enum:
              - active
              - all
              - inactive
            default: active
            description: Filter for currencies that are active, inactive, or both.
            example: active
        - in: query
          name: updatedAfter
          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.
          schema:
            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.
            example: 2025-01-01T12:34:56.000Z
        - in: query
          name: updatedBefore
          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.
          schema:
            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.
            example: 2025-02-01T12:34:56.000Z
        - in: query
          name: nameContains
          description: >-
            Filter for currencies whose `name` contains this substring,
            case-insensitive.


            **NOTE**: If you use this parameter, you cannot also use
            `nameStartsWith` or `nameEndsWith`.
          schema:
            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`.
            example: ABC
        - in: query
          name: nameStartsWith
          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`.
          schema:
            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`.
            example: ABC
        - in: query
          name: nameEndsWith
          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`.
          schema:
            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`.
            example: ABC
        - in: query
          name: nameFrom
          description: >-
            Filter for currencies whose `name` is alphabetically greater than or
            equal to this value.
          schema:
            type: string
            description: >-
              Filter for currencies whose `name` is alphabetically greater than
              or equal to this value.
            example: A
        - in: query
          name: nameTo
          description: >-
            Filter for currencies whose `name` is alphabetically less than or
            equal to this value.
          schema:
            type: string
            description: >-
              Filter for currencies whose `name` is alphabetically less than or
              equal to this value.
            example: Z
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns a list of currencies.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          content:
            application/json:
              schema:
                type: object
                properties:
                  objectType:
                    type: string
                    const: list
                    description: The type of object. This value is always `"list"`.
                    example: 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
          description: The ID of the End-User to receive this request.
          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
      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:
                  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
                  default: true
                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:
                  type: object
                  properties:
                    thousandSeparator:
                      type: string
                      enum:
                        - apostrophe
                        - comma
                        - period
                        - space
                      description: >-
                        Controls the thousands separator when displaying
                        currency values (for example, "1,000,000"). Defaults to
                        comma.
                      example: comma
                      default: comma
                    thousandSeparatorGrouping:
                      type: string
                      enum:
                        - x_xx_xx_xxx
                        - xx_xxx_xxx
                      description: >-
                        Controls how digits are grouped for thousands when
                        displaying currency values (for example, "10,000,000").
                      example: xx_xxx_xxx
                      default: xx_xxx_xxx
                    decimalPlaces:
                      type: string
                      enum:
                        - '0'
                        - '2'
                      description: >-
                        Controls the number of decimal places displayed for
                        currency values. Use `0` to hide decimals or `2` to
                        display cents.
                      example: '2'
                      default: '2'
                    decimalSeparator:
                      type: string
                      enum:
                        - comma
                        - period
                      description: >-
                        Controls the decimal separator when displaying currency
                        values (for example, "1.00" vs "1,00"). Defaults to
                        period.
                      example: period
                      default: period
                  additionalProperties: false
                  description: >-
                    Controls how this currency displays thousands separators,
                    grouping, and decimal places.
              required:
                - name
                - currencyCode
              additionalProperties: false
      responses:
        '200':
          description: Returns the newly created currency.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the currency to
            retrieve.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the currency to
              retrieve.
            example: 80000001-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns the specified currency.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: path
          name: id
          description: The QuickBooks-assigned unique identifier of the currency to update.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the currency to
              update.
            example: 80000001-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      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:
                  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:
                  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
                  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:
                  type: object
                  properties:
                    thousandSeparator:
                      type: string
                      enum:
                        - apostrophe
                        - comma
                        - period
                        - space
                      description: >-
                        Controls the thousands separator when displaying
                        currency values (for example, "1,000,000"). Defaults to
                        comma.
                      example: comma
                    thousandSeparatorGrouping:
                      type: string
                      enum:
                        - x_xx_xx_xxx
                        - xx_xxx_xxx
                      description: >-
                        Controls how digits are grouped for thousands when
                        displaying currency values (for example, "10,000,000").
                      example: xx_xxx_xxx
                    decimalPlaces:
                      type: string
                      enum:
                        - '0'
                        - '2'
                      description: >-
                        Controls the number of decimal places displayed for
                        currency values. Use `0` to hide decimals or `2` to
                        display cents.
                      example: '2'
                    decimalSeparator:
                      type: string
                      enum:
                        - comma
                        - period
                      description: >-
                        Controls the decimal separator when displaying currency
                        values (for example, "1.00" vs "1,00"). Defaults to
                        period.
                      example: period
                  additionalProperties: false
                  description: >-
                    Controls how this currency displays thousands separators,
                    grouping, and decimal places.
              required:
                - revisionNumber
              additionalProperties: false
      responses:
        '200':
          description: Returns the updated currency.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: query
          name: ids
          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.
          schema:
            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.
            example:
              - 80000001-1234567890
        - in: query
          name: fullNames
          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.
          schema:
            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.
            example:
              - Industry:Healthcare
        - in: query
          name: limit
          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.
          schema:
            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.
            example: 10
        - in: query
          name: status
          description: Filter for customer types that are active, inactive, or both.
          schema:
            type: string
            enum:
              - active
              - all
              - inactive
            default: active
            description: Filter for customer types that are active, inactive, or both.
            example: active
        - in: query
          name: updatedAfter
          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.
          schema:
            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.
            example: 2025-01-01T12:34:56.000Z
        - in: query
          name: updatedBefore
          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.
          schema:
            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.
            example: 2025-02-01T12:34:56.000Z
        - in: query
          name: nameContains
          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`.
          schema:
            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`.
            example: ABC
        - in: query
          name: nameStartsWith
          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`.
          schema:
            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`.
            example: ABC
        - in: query
          name: nameEndsWith
          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`.
          schema:
            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`.
            example: ABC
        - in: query
          name: nameFrom
          description: >-
            Filter for customer types whose `name` is alphabetically greater
            than or equal to this value.
          schema:
            type: string
            description: >-
              Filter for customer types whose `name` is alphabetically greater
              than or equal to this value.
            example: A
        - in: query
          name: nameTo
          description: >-
            Filter for customer types whose `name` is alphabetically less than
            or equal to this value.
          schema:
            type: string
            description: >-
              Filter for customer types whose `name` is alphabetically less than
              or equal to this value.
            example: Z
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns a list of customer types.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          content:
            application/json:
              schema:
                type: object
                properties:
                  objectType:
                    type: string
                    const: list
                    description: The type of object. This value is always `"list"`.
                    example: 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
          description: The ID of the End-User to receive this request.
          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
      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:
                  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
                  default: true
                parentId:
                  type: string
                  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
              required:
                - name
              additionalProperties: false
      responses:
        '200':
          description: Returns the newly created customer type.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the customer type to
            retrieve.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the customer type to
              retrieve.
            example: 80000001-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns the specified customer type.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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.
      security:
        - BearerAuth: []
      parameters:
        - in: query
          name: ids
          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.
          schema:
            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.
            example:
              - 80000001-1234567890
        - in: query
          name: fullNames
          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.
          schema:
            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.
            example:
              - ABC Corporation:Website Redesign Project
        - in: query
          name: limit
          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.
          schema:
            type: integer
            minimum: 1
            maximum: 150
            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
        - in: query
          name: cursor
          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.
          schema:
            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.
            example: 12345678-abcd-abcd-example-1234567890ab
        - in: query
          name: status
          description: Filter for customers that are active, inactive, or both.
          schema:
            type: string
            enum:
              - active
              - all
              - inactive
            default: active
            description: Filter for customers that are active, inactive, or both.
            example: active
        - in: query
          name: updatedAfter
          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.
          schema:
            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.
            example: 2025-01-01T12:34:56.000Z
        - in: query
          name: updatedBefore
          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.
          schema:
            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.
            example: 2025-02-01T12:34:56.000Z
        - in: query
          name: nameContains
          description: >-
            Filter for customers whose `name` contains this substring,
            case-insensitive.


            **NOTE**: If you use this parameter, you cannot also use
            `nameStartsWith` or `nameEndsWith`.
          schema:
            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`.
            example: ABC
        - in: query
          name: nameStartsWith
          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`.
          schema:
            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`.
            example: ABC
        - in: query
          name: nameEndsWith
          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`.
          schema:
            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`.
            example: ABC
        - in: query
          name: nameFrom
          description: >-
            Filter for customers whose `name` is alphabetically greater than or
            equal to this value.
          schema:
            type: string
            description: >-
              Filter for customers whose `name` is alphabetically greater than
              or equal to this value.
            example: A
        - in: query
          name: nameTo
          description: >-
            Filter for customers whose `name` is alphabetically less than or
            equal to this value.
          schema:
            type: string
            description: >-
              Filter for customers whose `name` is alphabetically less than or
              equal to this value.
            example: Z
        - in: query
          name: totalBalance
          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.
          schema:
            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.
            example: '123.45'
        - in: query
          name: totalBalanceGreaterThan
          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.
          schema:
            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.
            example: '123.45'
        - in: query
          name: totalBalanceGreaterThanOrEqualTo
          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.
          schema:
            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.
            example: '123.45'
        - in: query
          name: totalBalanceLessThan
          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.
          schema:
            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.
            example: '123.45'
        - in: query
          name: totalBalanceLessThanOrEqualTo
          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.
          schema:
            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.
            example: '123.45'
        - in: query
          name: currencyIds
          description: Filter for customers in these currencies.
          schema:
            type: array
            items:
              type: string
            description: Filter for customers in these currencies.
            example:
              - 80000001-1234567890
        - in: query
          name: classIds
          description: >-
            Filter for customers of these classes. A class is a way end-users
            can categorize customers in QuickBooks.
          schema:
            type: array
            items:
              type: string
            description: >-
              Filter for customers of these classes. A class is a way end-users
              can categorize customers in QuickBooks.
            example:
              - 80000001-1234567890
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns a list of customers.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          content:
            application/json:
              schema:
                type: object
                properties:
                  objectType:
                    type: string
                    const: list
                    description: The type of object. This value is always `"list"`.
                    example: 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:
                    type:
                      - string
                      - '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:
                    type:
                      - number
                      - '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
          description: The ID of the End-User to receive this request.
          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
      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:
                  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
                  default: true
                classId:
                  type: string
                  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
                parentId:
                  type: string
                  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
                companyName:
                  type: string
                  description: >-
                    The name of the company associated with this customer. This
                    name is used on invoices, checks, and other forms.
                  example: Acme Corporation
                salutation:
                  type: string
                  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:
                  type: string
                  maxLength: 25
                  description: |-
                    The first name of the contact person for this customer.

                    Maximum length: 25 characters.
                  example: John
                middleName:
                  type: string
                  maxLength: 5
                  description: |-
                    The middle name of the contact person for this customer.

                    Maximum length: 5 characters.
                  example: A.
                lastName:
                  type: string
                  maxLength: 25
                  description: |-
                    The last name of the contact person for this customer.

                    Maximum length: 25 characters.
                  example: Doe
                jobTitle:
                  type: string
                  description: The job title of the contact person for this customer.
                  example: Purchasing Manager
                billingAddress:
                  type: object
                  properties:
                    line1:
                      type: string
                      maxLength: 41
                      description: >-
                        The first line of the address (e.g., street, PO Box, or
                        company name).


                        Maximum length: 41 characters.
                      example: Conductor Labs Inc.
                    line2:
                      type: string
                      maxLength: 41
                      description: >-
                        The second line of the address, if needed (e.g.,
                        apartment, suite, unit, or building).


                        Maximum length: 41 characters.
                      example: 540 Market St.
                    line3:
                      type: string
                      maxLength: 41
                      description: |-
                        The third line of the address, if needed.

                        Maximum length: 41 characters.
                      example: Suite 100
                    line4:
                      type: string
                      maxLength: 41
                      description: |-
                        The fourth line of the address, if needed.

                        Maximum length: 41 characters.
                      example: ''
                    line5:
                      type: string
                      maxLength: 41
                      description: |-
                        The fifth line of the address, if needed.

                        Maximum length: 41 characters.
                      example: ''
                    city:
                      type: string
                      maxLength: 31
                      description: >-
                        The city, district, suburb, town, or village name of the
                        address.


                        Maximum length: 31 characters.
                      example: San Francisco
                    state:
                      type: string
                      maxLength: 21
                      description: >-
                        The state, county, province, or region name of the
                        address.


                        Maximum length: 21 characters.
                      example: CA
                    postalCode:
                      type: string
                      maxLength: 13
                      description: |-
                        The postal code or ZIP code of the address.

                        Maximum length: 13 characters.
                      example: '94110'
                    country:
                      type: string
                      description: The country name of the address.
                      example: United States
                    note:
                      type: string
                      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
                  additionalProperties: false
                  description: The customer's billing address.
                shippingAddress:
                  type: object
                  properties:
                    line1:
                      type: string
                      maxLength: 41
                      description: >-
                        The first line of the address (e.g., street, PO Box, or
                        company name).


                        Maximum length: 41 characters.
                      example: Conductor Labs Inc.
                    line2:
                      type: string
                      maxLength: 41
                      description: >-
                        The second line of the address, if needed (e.g.,
                        apartment, suite, unit, or building).


                        Maximum length: 41 characters.
                      example: 540 Market St.
                    line3:
                      type: string
                      maxLength: 41
                      description: |-
                        The third line of the address, if needed.

                        Maximum length: 41 characters.
                      example: Suite 100
                    line4:
                      type: string
                      maxLength: 41
                      description: |-
                        The fourth line of the address, if needed.

                        Maximum length: 41 characters.
                      example: ''
                    line5:
                      type: string
                      maxLength: 41
                      description: |-
                        The fifth line of the address, if needed.

                        Maximum length: 41 characters.
                      example: ''
                    city:
                      type: string
                      maxLength: 31
                      description: >-
                        The city, district, suburb, town, or village name of the
                        address.


                        Maximum length: 31 characters.
                      example: San Francisco
                    state:
                      type: string
                      maxLength: 21
                      description: >-
                        The state, county, province, or region name of the
                        address.


                        Maximum length: 21 characters.
                      example: CA
                    postalCode:
                      type: string
                      maxLength: 13
                      description: |-
                        The postal code or ZIP code of the address.

                        Maximum length: 13 characters.
                      example: '94110'
                    country:
                      type: string
                      description: The country name of the address.
                      example: United States
                    note:
                      type: string
                      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
                  additionalProperties: false
                  description: The customer's shipping address.
                alternateShippingAddresses:
                  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:
                        type: string
                        maxLength: 41
                        description: >-
                          The first line of the shipping address (e.g., street,
                          PO Box, or company name).


                          Maximum length: 41 characters.
                        example: Conductor Labs Inc.
                      line2:
                        type: string
                        maxLength: 41
                        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.
                      line3:
                        type: string
                        maxLength: 41
                        description: |-
                          The third line of the shipping address, if needed.

                          Maximum length: 41 characters.
                        example: Suite 100
                      line4:
                        type: string
                        maxLength: 41
                        description: |-
                          The fourth line of the shipping address, if needed.

                          Maximum length: 41 characters.
                        example: ''
                      line5:
                        type: string
                        maxLength: 41
                        description: |-
                          The fifth line of the shipping address, if needed.

                          Maximum length: 41 characters.
                        example: ''
                      city:
                        type: string
                        maxLength: 31
                        description: >-
                          The city, district, suburb, town, or village name of
                          the shipping address.


                          Maximum length: 31 characters.
                        example: San Francisco
                      state:
                        type: string
                        maxLength: 21
                        description: >-
                          The state, county, province, or region name of the
                          shipping address.


                          Maximum length: 21 characters.
                        example: CA
                      postalCode:
                        type: string
                        maxLength: 13
                        description: |-
                          The postal code or ZIP code of the shipping address.

                          Maximum length: 13 characters.
                        example: '94110'
                      country:
                        type: string
                        description: The country name of the shipping address.
                        example: United States
                      note:
                        type: string
                        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:
                        type: boolean
                        description: >-
                          Indicates whether this shipping address is the default
                          shipping address.
                        example: true
                    required:
                      - name
                    additionalProperties: false
                  minItems: 1
                  description: >-
                    A list of additional shipping addresses for this customer.
                    Useful when the customer has multiple shipping locations.
                phone:
                  type: string
                  description: The customer's primary telephone number.
                  example: +1-555-123-4567
                alternatePhone:
                  type: string
                  description: The customer's alternate telephone number.
                  example: +1-555-987-6543
                fax:
                  type: string
                  description: The customer's fax number.
                  example: +1-555-555-1212
                email:
                  type: string
                  description: The customer's email address.
                  example: customer@example.com
                ccEmail:
                  type: string
                  description: >-
                    An email address to carbon copy (CC) on communications with
                    this customer.
                  example: manager@example.com
                contact:
                  type: string
                  description: The name of the primary contact person for this customer.
                  example: Jane Smith
                alternateContact:
                  type: string
                  description: The name of a alternate contact person for this customer.
                  example: Bob Johnson
                customContactFields:
                  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
                  minItems: 1
                  description: >-
                    Additional custom contact fields for this customer, such as
                    phone numbers or email addresses.
                additionalContacts:
                  type: array
                  items:
                    type: object
                    properties:
                      salutation:
                        type: string
                        description: >-
                          The contact's formal salutation title that precedes
                          their name, such as "Mr.", "Ms.", or "Dr.".
                        example: Dr.
                      firstName:
                        type: string
                        maxLength: 25
                        description: |-
                          The contact's first name.

                          Maximum length: 25 characters.
                        example: John
                      middleName:
                        type: string
                        maxLength: 5
                        description: |-
                          The contact's middle name.

                          Maximum length: 5 characters.
                        example: A.
                      lastName:
                        type: string
                        maxLength: 25
                        description: |-
                          The contact's last name.

                          Maximum length: 25 characters.
                        example: Doe
                      jobTitle:
                        type: string
                        description: The contact's job title.
                        example: Purchasing Manager
                      customContactFields:
                        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
                        minItems: 1
                        description: >-
                          Additional custom contact fields for this contact,
                          such as phone numbers or email addresses.
                    required:
                      - firstName
                    additionalProperties: false
                  minItems: 1
                  description: Additional alternate contacts for this customer.
                customerTypeId:
                  type: string
                  description: >-
                    The customer's type, used for categorizing customers into
                    meaningful segments, such as industry or region.
                  example: 80000001-1234567890
                termsId:
                  type: string
                  description: >-
                    The customer's payment terms, defining when payment is due
                    and any applicable discounts.
                  example: 80000001-1234567890
                salesRepresentativeId:
                  type: string
                  description: >-
                    The customer's sales representative. Sales representatives
                    can be employees, vendors, or other names in QuickBooks.
                  example: 80000001-1234567890
                openingBalance:
                  type: string
                  description: >-
                    The opening balance of this customer's account, indicating
                    the amount owed by this customer, represented as a decimal
                    string.
                  example: '1000.00'
                openingBalanceDate:
                  type: string
                  format: date
                  description: >-
                    The date of the opening balance of this customer, in ISO
                    8601 format (YYYY-MM-DD).
                  example: '2023-01-01'
                salesTaxCodeId:
                  type: string
                  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. If QuickBooks is not set up to charge sales tax
                    (via the "Do You Charge Sales Tax?" preference), it will
                    assign the default non-taxable code to all sales.
                  example: 80000001-1234567890
                salesTaxItemId:
                  type: string
                  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
                salesTaxCountry:
                  type: string
                  enum:
                    - australia
                    - canada
                    - uk
                    - us
                  description: >-
                    The country for which sales tax is collected for this
                    customer.
                  example: us
                resaleNumber:
                  type: string
                  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:
                  type: string
                  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:
                  type: string
                  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'
                preferredPaymentMethodId:
                  type: string
                  description: >-
                    The customer's preferred payment method (e.g., cash, check,
                    credit card).
                  example: 80000001-1234567890
                creditCard:
                  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:
                      type: string
                      description: The cardholder's name on the card.
                      example: John Doe
                    address:
                      type: string
                      description: The card's billing address.
                      example: 1234 Main St, Anytown, USA, 12345
                    postalCode:
                      type: string
                      description: The card's billing address ZIP or postal code.
                      example: '12345'
                  additionalProperties: false
                  description: >-
                    The customer's credit card information, including card type,
                    number, and expiration date, used for processing credit card
                    payments.
                jobStatus:
                  type: string
                  enum:
                    - awarded
                    - closed
                    - in_progress
                    - none
                    - not_awarded
                    - pending
                  description: >-
                    The status of this customer's job, if this object is a job
                    (i.e., sub-customer).
                  example: in_progress
                  default: none
                jobStartDate:
                  type: string
                  format: date
                  description: >-
                    The date when work on this customer's job began, if
                    applicable, in ISO 8601 format (YYYY-MM-DD).
                  example: '2024-01-15'
                jobProjectedEndDate:
                  type: string
                  format: date
                  description: >-
                    The projected completion date for this customer's job, if
                    applicable, in ISO 8601 format (YYYY-MM-DD).
                  example: '2024-12-31'
                jobEndDate:
                  type: string
                  format: date
                  description: >-
                    The actual completion date of this customer's job, if
                    applicable, in ISO 8601 format (YYYY-MM-DD).
                  example: '2024-11-30'
                jobDescription:
                  type: string
                  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.
                jobTypeId:
                  type: string
                  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
                note:
                  type: string
                  description: A note or comment about this customer.
                  example: Our favorite customer.
                additionalNotes:
                  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
                  minItems: 1
                  description: Additional notes about this customer.
                preferredDeliveryMethod:
                  type: string
                  enum:
                    - email
                    - mail
                    - none
                  description: >-
                    The preferred method for delivering invoices and other
                    documents to this customer.
                  example: email
                  default: none
                priceLevelId:
                  type: string
                  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
                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:
                  type: string
                  description: >-
                    The customer's tax registration number, for use in Canada or
                    the UK.
                  example: GB123456789
                currencyId:
                  type: string
                  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
              required:
                - name
              additionalProperties: false
      responses:
        '200':
          description: Returns the newly created customer.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the customer to
            retrieve.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the customer to
              retrieve.
            example: 80000001-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns the specified customer.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: path
          name: id
          description: The QuickBooks-assigned unique identifier of the customer to update.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the customer to
              update.
            example: 80000001-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      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:
                  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:
                  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
                classId:
                  type: string
                  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
                parentId:
                  type: string
                  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
                companyName:
                  type: string
                  description: >-
                    The name of the company associated with this customer. This
                    name is used on invoices, checks, and other forms.
                  example: Acme Corporation
                salutation:
                  type: string
                  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:
                  type: string
                  maxLength: 25
                  description: |-
                    The first name of the contact person for this customer.

                    Maximum length: 25 characters.
                  example: John
                middleName:
                  type: string
                  maxLength: 5
                  description: |-
                    The middle name of the contact person for this customer.

                    Maximum length: 5 characters.
                  example: A.
                lastName:
                  type: string
                  maxLength: 25
                  description: |-
                    The last name of the contact person for this customer.

                    Maximum length: 25 characters.
                  example: Doe
                jobTitle:
                  type: string
                  description: The job title of the contact person for this customer.
                  example: Purchasing Manager
                billingAddress:
                  type: object
                  properties:
                    line1:
                      type: string
                      maxLength: 41
                      description: >-
                        The first line of the address (e.g., street, PO Box, or
                        company name).


                        Maximum length: 41 characters.
                      example: Conductor Labs Inc.
                    line2:
                      type: string
                      maxLength: 41
                      description: >-
                        The second line of the address, if needed (e.g.,
                        apartment, suite, unit, or building).


                        Maximum length: 41 characters.
                      example: 540 Market St.
                    line3:
                      type: string
                      maxLength: 41
                      description: |-
                        The third line of the address, if needed.

                        Maximum length: 41 characters.
                      example: Suite 100
                    line4:
                      type: string
                      maxLength: 41
                      description: |-
                        The fourth line of the address, if needed.

                        Maximum length: 41 characters.
                      example: ''
                    line5:
                      type: string
                      maxLength: 41
                      description: |-
                        The fifth line of the address, if needed.

                        Maximum length: 41 characters.
                      example: ''
                    city:
                      type: string
                      maxLength: 31
                      description: >-
                        The city, district, suburb, town, or village name of the
                        address.


                        Maximum length: 31 characters.
                      example: San Francisco
                    state:
                      type: string
                      maxLength: 21
                      description: >-
                        The state, county, province, or region name of the
                        address.


                        Maximum length: 21 characters.
                      example: CA
                    postalCode:
                      type: string
                      maxLength: 13
                      description: |-
                        The postal code or ZIP code of the address.

                        Maximum length: 13 characters.
                      example: '94110'
                    country:
                      type: string
                      description: The country name of the address.
                      example: United States
                    note:
                      type: string
                      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
                  additionalProperties: false
                  description: The customer's billing address.
                shippingAddress:
                  type: object
                  properties:
                    line1:
                      type: string
                      maxLength: 41
                      description: >-
                        The first line of the address (e.g., street, PO Box, or
                        company name).


                        Maximum length: 41 characters.
                      example: Conductor Labs Inc.
                    line2:
                      type: string
                      maxLength: 41
                      description: >-
                        The second line of the address, if needed (e.g.,
                        apartment, suite, unit, or building).


                        Maximum length: 41 characters.
                      example: 540 Market St.
                    line3:
                      type: string
                      maxLength: 41
                      description: |-
                        The third line of the address, if needed.

                        Maximum length: 41 characters.
                      example: Suite 100
                    line4:
                      type: string
                      maxLength: 41
                      description: |-
                        The fourth line of the address, if needed.

                        Maximum length: 41 characters.
                      example: ''
                    line5:
                      type: string
                      maxLength: 41
                      description: |-
                        The fifth line of the address, if needed.

                        Maximum length: 41 characters.
                      example: ''
                    city:
                      type: string
                      maxLength: 31
                      description: >-
                        The city, district, suburb, town, or village name of the
                        address.


                        Maximum length: 31 characters.
                      example: San Francisco
                    state:
                      type: string
                      maxLength: 21
                      description: >-
                        The state, county, province, or region name of the
                        address.


                        Maximum length: 21 characters.
                      example: CA
                    postalCode:
                      type: string
                      maxLength: 13
                      description: |-
                        The postal code or ZIP code of the address.

                        Maximum length: 13 characters.
                      example: '94110'
                    country:
                      type: string
                      description: The country name of the address.
                      example: United States
                    note:
                      type: string
                      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
                  additionalProperties: false
                  description: The customer's shipping address.
                alternateShippingAddresses:
                  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:
                        type: string
                        maxLength: 41
                        description: >-
                          The first line of the shipping address (e.g., street,
                          PO Box, or company name).


                          Maximum length: 41 characters.
                        example: Conductor Labs Inc.
                      line2:
                        type: string
                        maxLength: 41
                        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.
                      line3:
                        type: string
                        maxLength: 41
                        description: |-
                          The third line of the shipping address, if needed.

                          Maximum length: 41 characters.
                        example: Suite 100
                      line4:
                        type: string
                        maxLength: 41
                        description: |-
                          The fourth line of the shipping address, if needed.

                          Maximum length: 41 characters.
                        example: ''
                      line5:
                        type: string
                        maxLength: 41
                        description: |-
                          The fifth line of the shipping address, if needed.

                          Maximum length: 41 characters.
                        example: ''
                      city:
                        type: string
                        maxLength: 31
                        description: >-
                          The city, district, suburb, town, or village name of
                          the shipping address.


                          Maximum length: 31 characters.
                        example: San Francisco
                      state:
                        type: string
                        maxLength: 21
                        description: >-
                          The state, county, province, or region name of the
                          shipping address.


                          Maximum length: 21 characters.
                        example: CA
                      postalCode:
                        type: string
                        maxLength: 13
                        description: |-
                          The postal code or ZIP code of the shipping address.

                          Maximum length: 13 characters.
                        example: '94110'
                      country:
                        type: string
                        description: The country name of the shipping address.
                        example: United States
                      note:
                        type: string
                        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:
                        type: boolean
                        description: >-
                          Indicates whether this shipping address is the default
                          shipping address.
                        example: true
                    required:
                      - name
                    additionalProperties: false
                  minItems: 1
                  description: >-
                    A list of additional shipping addresses for this customer.
                    Useful when the customer has multiple shipping locations.
                phone:
                  type: string
                  description: The customer's primary telephone number.
                  example: +1-555-123-4567
                alternatePhone:
                  type: string
                  description: The customer's alternate telephone number.
                  example: +1-555-987-6543
                fax:
                  type: string
                  description: The customer's fax number.
                  example: +1-555-555-1212
                email:
                  type: string
                  description: The customer's email address.
                  example: customer@example.com
                ccEmail:
                  type: string
                  description: >-
                    An email address to carbon copy (CC) on communications with
                    this customer.
                  example: manager@example.com
                contact:
                  type: string
                  description: The name of the primary contact person for this customer.
                  example: Jane Smith
                alternateContact:
                  type: string
                  description: The name of a alternate contact person for this customer.
                  example: Bob Johnson
                customContactFields:
                  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
                  minItems: 1
                  description: >-
                    Additional custom contact fields for this customer, such as
                    phone numbers or email addresses.
                additionalContacts:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                        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:
                        type: string
                        description: >-
                          The contact's formal salutation title that precedes
                          their name, such as "Mr.", "Ms.", or "Dr.".
                        example: Dr.
                      firstName:
                        type: string
                        maxLength: 25
                        description: |-
                          The contact's first name.

                          Maximum length: 25 characters.
                        example: John
                      middleName:
                        type: string
                        maxLength: 5
                        description: |-
                          The contact's middle name.

                          Maximum length: 5 characters.
                        example: A.
                      lastName:
                        type: string
                        maxLength: 25
                        description: |-
                          The contact's last name.

                          Maximum length: 25 characters.
                        example: Doe
                      jobTitle:
                        type: string
                        description: The contact's job title.
                        example: Purchasing Manager
                      customContactFields:
                        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
                        minItems: 1
                        description: >-
                          Additional custom contact fields for this contact,
                          such as phone numbers or email addresses.
                    required:
                      - id
                      - revisionNumber
                    additionalProperties: false
                  minItems: 1
                  description: Additional alternate contacts for this customer.
                customerTypeId:
                  type: string
                  description: >-
                    The customer's type, used for categorizing customers into
                    meaningful segments, such as industry or region.
                  example: 80000001-1234567890
                termsId:
                  type: string
                  description: >-
                    The customer's payment terms, defining when payment is due
                    and any applicable discounts.
                  example: 80000001-1234567890
                salesRepresentativeId:
                  type: string
                  description: >-
                    The customer's sales representative. Sales representatives
                    can be employees, vendors, or other names in QuickBooks.
                  example: 80000001-1234567890
                salesTaxCodeId:
                  type: string
                  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. If QuickBooks is not set up to charge sales tax
                    (via the "Do You Charge Sales Tax?" preference), it will
                    assign the default non-taxable code to all sales.
                  example: 80000001-1234567890
                salesTaxItemId:
                  type: string
                  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
                salesTaxCountry:
                  type: string
                  enum:
                    - australia
                    - canada
                    - uk
                    - us
                  description: >-
                    The country for which sales tax is collected for this
                    customer.
                  example: us
                resaleNumber:
                  type: string
                  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:
                  type: string
                  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:
                  type: string
                  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'
                preferredPaymentMethodId:
                  type: string
                  description: >-
                    The customer's preferred payment method (e.g., cash, check,
                    credit card).
                  example: 80000001-1234567890
                creditCard:
                  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:
                      type: string
                      description: The cardholder's name on the card.
                      example: John Doe
                    address:
                      type: string
                      description: The card's billing address.
                      example: 1234 Main St, Anytown, USA, 12345
                    postalCode:
                      type: string
                      description: The card's billing address ZIP or postal code.
                      example: '12345'
                  additionalProperties: false
                  description: >-
                    The customer's credit card information, including card type,
                    number, and expiration date, used for processing credit card
                    payments.
                jobStatus:
                  type: string
                  enum:
                    - awarded
                    - closed
                    - in_progress
                    - none
                    - not_awarded
                    - pending
                  description: >-
                    The status of this customer's job, if this object is a job
                    (i.e., sub-customer).
                  example: in_progress
                jobStartDate:
                  type: string
                  format: date
                  description: >-
                    The date when work on this customer's job began, if
                    applicable, in ISO 8601 format (YYYY-MM-DD).
                  example: '2024-01-15'
                jobProjectedEndDate:
                  type: string
                  format: date
                  description: >-
                    The projected completion date for this customer's job, if
                    applicable, in ISO 8601 format (YYYY-MM-DD).
                  example: '2024-12-31'
                jobEndDate:
                  type: string
                  format: date
                  description: >-
                    The actual completion date of this customer's job, if
                    applicable, in ISO 8601 format (YYYY-MM-DD).
                  example: '2024-11-30'
                jobDescription:
                  type: string
                  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.
                jobTypeId:
                  type: string
                  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
                note:
                  type: string
                  description: A note or comment about this customer.
                  example: Our favorite customer.
                additionalNotes:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: number
                        description: The ID of the note to update.
                        example: 1
                      note:
                        type: string
                        description: The text of this note.
                        example: This is a fun note.
                    required:
                      - id
                      - note
                    additionalProperties: false
                  minItems: 1
                  description: Additional notes about this customer.
                preferredDeliveryMethod:
                  type: string
                  enum:
                    - email
                    - mail
                    - none
                  description: >-
                    The preferred method for delivering invoices and other
                    documents to this customer.
                  example: email
                priceLevelId:
                  type: string
                  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
                taxRegistrationNumber:
                  type: string
                  description: >-
                    The customer's tax registration number, for use in Canada or
                    the UK.
                  example: GB123456789
                currencyId:
                  type: string
                  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
              required:
                - revisionNumber
              additionalProperties: false
      responses:
        '200':
          description: Returns the updated customer.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: query
          name: ids
          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.
          schema:
            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.
            example:
              - 80000001-1234567890
        - in: query
          name: names
          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.
          schema:
            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.
            example:
              - 2% 5th Net 25th
        - in: query
          name: limit
          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.
          schema:
            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.
            example: 10
        - in: query
          name: status
          description: Filter for date-driven terms that are active, inactive, or both.
          schema:
            type: string
            enum:
              - active
              - all
              - inactive
            default: active
            description: Filter for date-driven terms that are active, inactive, or both.
            example: active
        - in: query
          name: updatedAfter
          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.
          schema:
            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.
            example: 2025-01-01T12:34:56.000Z
        - in: query
          name: updatedBefore
          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.
          schema:
            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.
            example: 2025-02-01T12:34:56.000Z
        - in: query
          name: nameContains
          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`.
          schema:
            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`.
            example: ABC
        - in: query
          name: nameStartsWith
          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`.
          schema:
            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`.
            example: ABC
        - in: query
          name: nameEndsWith
          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`.
          schema:
            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`.
            example: ABC
        - in: query
          name: nameFrom
          description: >-
            Filter for date-driven terms whose `name` is alphabetically greater
            than or equal to this value.
          schema:
            type: string
            description: >-
              Filter for date-driven terms whose `name` is alphabetically
              greater than or equal to this value.
            example: A
        - in: query
          name: nameTo
          description: >-
            Filter for date-driven terms whose `name` is alphabetically less
            than or equal to this value.
          schema:
            type: string
            description: >-
              Filter for date-driven terms whose `name` is alphabetically less
              than or equal to this value.
            example: Z
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns a list of date-driven terms.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          content:
            application/json:
              schema:
                type: object
                properties:
                  objectType:
                    type: string
                    const: list
                    description: The type of object. This value is always `"list"`.
                    example: 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
          description: The ID of the End-User to receive this request.
          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
      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:
                  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
                  default: true
                dueDayOfMonth:
                  type: number
                  description: >-
                    The day of the month when full payment is due without
                    discount.
                  example: 15
                gracePeriodDays:
                  type: number
                  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:
                  type: number
                  description: >-
                    The day of the month within which payment must be received
                    to qualify for the discount specified by
                    `discountPercentage`.
                  example: 5
                discountPercentage:
                  type: string
                  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:
                - name
                - dueDayOfMonth
              additionalProperties: false
      responses:
        '200':
          description: Returns the newly created date-driven term.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the date-driven term to
            retrieve.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the date-driven term
              to retrieve.
            example: 80000001-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns the specified date-driven term.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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.
      security:
        - BearerAuth: []
      parameters:
        - in: query
          name: objectTypes
          description: Filter for deleted list-objects by their list-object type(s).
          schema:
            type: array
            description: Filter for deleted list-objects by their list-object type(s).
            example:
              - customer
            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
        - in: query
          name: deletedAfter
          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.
          schema:
            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.
            example: 2025-01-01T12:34:56.000Z
        - in: query
          name: deletedBefore
          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.
          schema:
            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.
            example: 2025-02-01T12:34:56.000Z
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns a list of deleted list-objects.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          content:
            application/json:
              schema:
                type: object
                properties:
                  objectType:
                    type: string
                    const: list
                    description: The type of object. This value is always `"list"`.
                    example: 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.
      security:
        - BearerAuth: []
      parameters:
        - in: query
          name: transactionTypes
          description: Filter for deleted transactions by their transaction type(s).
          schema:
            type: array
            description: Filter for deleted transactions by their transaction type(s).
            example:
              - invoice
            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
        - in: query
          name: deletedAfter
          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.
          schema:
            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.
            example: 2025-01-01T12:34:56.000Z
        - in: query
          name: deletedBefore
          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.
          schema:
            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.
            example: 2025-02-01T12:34:56.000Z
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns a list of deleted transactions.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          content:
            application/json:
              schema:
                type: object
                properties:
                  objectType:
                    type: string
                    const: list
                    description: The type of object. This value is always `"list"`.
                    example: 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/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: query
          name: ids
          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.
          schema:
            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.
            example:
              - 80000001-1234567890
        - in: query
          name: fullNames
          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.
          schema:
            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.
            example:
              - Discounts:10% labor discount
        - in: query
          name: limit
          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.
          schema:
            type: integer
            minimum: 1
            maximum: 150
            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
        - in: query
          name: cursor
          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.
          schema:
            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.
            example: 12345678-abcd-abcd-example-1234567890ab
        - in: query
          name: status
          description: Filter for discount items that are active, inactive, or both.
          schema:
            type: string
            enum:
              - active
              - all
              - inactive
            default: active
            description: Filter for discount items that are active, inactive, or both.
            example: active
        - in: query
          name: updatedAfter
          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.
          schema:
            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.
            example: 2025-01-01T12:34:56.000Z
        - in: query
          name: updatedBefore
          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.
          schema:
            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.
            example: 2025-02-01T12:34:56.000Z
        - in: query
          name: nameContains
          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`.
          schema:
            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`.
            example: ABC
        - in: query
          name: nameStartsWith
          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`.
          schema:
            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`.
            example: ABC
        - in: query
          name: nameEndsWith
          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`.
          schema:
            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`.
            example: ABC
        - in: query
          name: nameFrom
          description: >-
            Filter for discount items whose `name` is alphabetically greater
            than or equal to this value.
          schema:
            type: string
            description: >-
              Filter for discount items whose `name` is alphabetically greater
              than or equal to this value.
            example: A
        - in: query
          name: nameTo
          description: >-
            Filter for discount items whose `name` is alphabetically less than
            or equal to this value.
          schema:
            type: string
            description: >-
              Filter for discount items whose `name` is alphabetically less than
              or equal to this value.
            example: Z
        - in: query
          name: classIds
          description: >-
            Filter for discount items of these classes. A class is a way
            end-users can categorize discount items in QuickBooks.
          schema:
            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.
            example:
              - 80000001-1234567890
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns a list of discount items.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          content:
            application/json:
              schema:
                type: object
                properties:
                  objectType:
                    type: string
                    const: list
                    description: The type of object. This value is always `"list"`.
                    example: 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:
                    type:
                      - string
                      - '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:
                    type:
                      - number
                      - '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
          description: The ID of the End-User to receive this request.
          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
      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:
                  type: object
                  properties:
                    value:
                      type: string
                      description: The item's barcode value.
                      example: '012345678905'
                    assignEvenIfUsed:
                      type: boolean
                      description: >-
                        Indicates whether to assign the barcode even if it is
                        already used.
                      example: false
                      default: false
                    allowOverride:
                      type: boolean
                      description: Indicates whether to allow the barcode to be overridden.
                      example: false
                      default: false
                  additionalProperties: false
                  description: The discount item's barcode.
                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
                  default: true
                classId:
                  type: string
                  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
                parentId:
                  type: string
                  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
                description:
                  type: string
                  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
                salesTaxCodeId:
                  type: string
                  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. If QuickBooks is not set up to charge sales tax
                    (via the "Do You Charge Sales Tax?" preference), it will
                    assign the default non-taxable code to all sales.
                  example: 80000001-1234567890
                discountRate:
                  type: string
                  description: >-
                    The monetary amount to subtract from the total or subtotal
                    when applying this discount item to a transaction.


                    **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:
                  type: string
                  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'
                accountId:
                  type: string
                  description: >-
                    The posting account to which transactions involving this
                    discount item are posted for tracking discounts.
                  example: 80000001-1234567890
                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:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the discount item to
            retrieve.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the discount item to
              retrieve.
            example: 80000001-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns the specified discount item.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the discount item to
            update.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the discount item to
              update.
            example: 80000001-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      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:
                  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:
                  type: object
                  properties:
                    value:
                      type: string
                      description: The item's barcode value.
                      example: '012345678905'
                    assignEvenIfUsed:
                      type: boolean
                      description: >-
                        Indicates whether to assign the barcode even if it is
                        already used.
                      example: false
                      default: false
                    allowOverride:
                      type: boolean
                      description: Indicates whether to allow the barcode to be overridden.
                      example: false
                      default: false
                  additionalProperties: false
                  description: The discount item's barcode.
                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
                classId:
                  type: string
                  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
                parentId:
                  type: string
                  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
                description:
                  type: string
                  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
                salesTaxCodeId:
                  type: string
                  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. If QuickBooks is not set up to charge sales tax
                    (via the "Do You Charge Sales Tax?" preference), it will
                    assign the default non-taxable code to all sales.
                  example: 80000001-1234567890
                discountRate:
                  type: string
                  description: >-
                    The monetary amount to subtract from the total or subtotal
                    when applying this discount item to a transaction.


                    **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:
                  type: string
                  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'
                accountId:
                  type: string
                  description: >-
                    The posting account to which transactions involving this
                    discount item are posted for tracking discounts.
                  example: 80000001-1234567890
                updateExistingTransactionsAccount:
                  type: boolean
                  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
              required:
                - revisionNumber
              additionalProperties: false
      responses:
        '200':
          description: Returns the updated discount item.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: query
          name: ids
          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.
          schema:
            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.
            example:
              - 80000001-1234567890
        - in: query
          name: names
          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.
          schema:
            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.
            example:
              - John Doe
        - in: query
          name: limit
          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.
          schema:
            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.
            example: 10
        - in: query
          name: status
          description: Filter for employees that are active, inactive, or both.
          schema:
            type: string
            enum:
              - active
              - all
              - inactive
            default: active
            description: Filter for employees that are active, inactive, or both.
            example: active
        - in: query
          name: updatedAfter
          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.
          schema:
            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.
            example: 2025-01-01T12:34:56.000Z
        - in: query
          name: updatedBefore
          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.
          schema:
            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.
            example: 2025-02-01T12:34:56.000Z
        - in: query
          name: nameContains
          description: >-
            Filter for employees whose `name` contains this substring,
            case-insensitive.


            **NOTE**: If you use this parameter, you cannot also use
            `nameStartsWith` or `nameEndsWith`.
          schema:
            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`.
            example: ABC
        - in: query
          name: nameStartsWith
          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`.
          schema:
            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`.
            example: ABC
        - in: query
          name: nameEndsWith
          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`.
          schema:
            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`.
            example: ABC
        - in: query
          name: nameFrom
          description: >-
            Filter for employees whose `name` is alphabetically greater than or
            equal to this value.
          schema:
            type: string
            description: >-
              Filter for employees whose `name` is alphabetically greater than
              or equal to this value.
            example: A
        - in: query
          name: nameTo
          description: >-
            Filter for employees whose `name` is alphabetically less than or
            equal to this value.
          schema:
            type: string
            description: >-
              Filter for employees whose `name` is alphabetically less than or
              equal to this value.
            example: Z
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns a list of employees.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          content:
            application/json:
              schema:
                type: object
                properties:
                  objectType:
                    type: string
                    const: list
                    description: The type of object. This value is always `"list"`.
                    example: 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
          description: The ID of the End-User to receive this request.
          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
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                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
                  default: true
                salutation:
                  type: string
                  description: >-
                    The employee's formal salutation title that precedes their
                    name, such as "Mr.", "Ms.", or "Dr.".
                  example: Dr.
                firstName:
                  type: string
                  maxLength: 25
                  description: |-
                    The employee's first name.

                    Maximum length: 25 characters.
                  example: John
                middleName:
                  type: string
                  maxLength: 5
                  description: |-
                    The employee's middle name.

                    Maximum length: 5 characters.
                  example: A.
                lastName:
                  type: string
                  maxLength: 25
                  description: |-
                    The employee's last name.

                    Maximum length: 25 characters.
                  example: Doe
                jobTitle:
                  type: string
                  description: The employee's job title.
                  example: Purchasing Manager
                supervisorId:
                  type: string
                  description: >-
                    The employee's supervisor. Found in the "employment job
                    details" section of the employee's record in QuickBooks.
                  example: 80000001-1234567890
                department:
                  type: string
                  description: >-
                    The employee's department. Found in the "employment job
                    details" section of the employee's record in QuickBooks.
                  example: Sales
                description:
                  type: string
                  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:
                  type: string
                  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:
                  type: object
                  properties:
                    line1:
                      type: string
                      maxLength: 41
                      description: >-
                        The first line of the employee address (e.g., street, PO
                        Box, or company name).


                        Maximum length: 41 characters.
                      example: Conductor Labs Inc.
                    line2:
                      type: string
                      maxLength: 41
                      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.
                    line3:
                      type: string
                      maxLength: 41
                      description: |-
                        The third line of the employee address, if needed.

                        Maximum length: 41 characters.
                      example: Suite 100
                    line4:
                      type: string
                      maxLength: 41
                      description: |-
                        The fourth line of the employee address, if needed.

                        Maximum length: 41 characters.
                      example: ''
                    city:
                      type: string
                      maxLength: 31
                      description: >-
                        The city, district, suburb, town, or village name of the
                        employee address.


                        Maximum length: 31 characters.
                      example: San Francisco
                    state:
                      type: string
                      enum:
                        - none
                        - armed_forces_americas
                        - armed_forces_europe
                        - armed_forces_pacific
                        - AK
                        - AL
                        - AR
                        - AZ
                        - CA
                        - CO
                        - CT
                        - DC
                        - DE
                        - FL
                        - GA
                        - HI
                        - IA
                        - ID
                        - IL
                        - IN
                        - KS
                        - KY
                        - LA
                        - MA
                        - MD
                        - ME
                        - MI
                        - MN
                        - MO
                        - MS
                        - MT
                        - NB
                        - NC
                        - ND
                        - NE
                        - NH
                        - NJ
                        - NM
                        - NV
                        - NY
                        - OH
                        - OK
                        - OR
                        - PA
                        - PR
                        - RI
                        - SC
                        - SD
                        - TN
                        - TX
                        - UT
                        - VA
                        - VT
                        - WA
                        - WI
                        - WV
                        - WY
                      description: >-
                        The U.S. state of the employee address. QuickBooks
                        requires this field to be a U.S. state abbreviation
                        (e.g., "CA" for California). See enum for all possible
                        values.
                      example: CA
                    postalCode:
                      type: string
                      maxLength: 13
                      description: |-
                        The postal code or ZIP code of the employee address.

                        Maximum length: 13 characters.
                      example: '94110'
                    country:
                      type: string
                      description: The country name of the employee address.
                      example: United States
                  additionalProperties: false
                  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:
                  type: string
                  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:
                  type: string
                  description: The employee's primary telephone number.
                  example: +1-555-123-4567
                mobile:
                  type: string
                  description: The employee's mobile phone number.
                  example: +1-555-555-1212
                pager:
                  type: string
                  description: The employee's pager number.
                  example: +1-555-555-1212
                pagerPin:
                  type: string
                  description: The employee's pager PIN.
                  example: '1234'
                alternatePhone:
                  type: string
                  description: The employee's alternate telephone number.
                  example: +1-555-987-6543
                fax:
                  type: string
                  description: The employee's fax number.
                  example: +1-555-555-1212
                ssn:
                  type: string
                  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:
                  type: string
                  description: The employee's email address.
                  example: employee@example.com
                customContactFields:
                  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
                  minItems: 1
                  description: >-
                    Additional custom contact fields for this employee, such as
                    phone numbers or email addresses.
                emergencyContact:
                  type: object
                  properties:
                    primaryContact:
                      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:
                          type: string
                          enum:
                            - brother
                            - daughter
                            - father
                            - friend
                            - mother
                            - other
                            - partner
                            - sister
                            - son
                            - spouse
                          description: The relationship of the employee to the employee.
                          example: spouse
                      required:
                        - name
                        - value
                      additionalProperties: false
                      description: The employee's primary emergency contact.
                    secondaryContact:
                      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:
                          type: string
                          enum:
                            - brother
                            - daughter
                            - father
                            - friend
                            - mother
                            - other
                            - partner
                            - sister
                            - son
                            - spouse
                          description: The relationship of the employee to the employee.
                          example: spouse
                      required:
                        - name
                        - value
                      additionalProperties: false
                      description: The employee's secondary emergency contact.
                  additionalProperties: false
                  description: The employee's emergency contacts.
                employeeType:
                  type: string
                  enum:
                    - officer
                    - owner
                    - regular
                    - statutory
                  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
                  default: regular
                employmentStatus:
                  type: string
                  enum:
                    - full_time
                    - part_time
                  description: >-
                    Indicates whether this employee is a part-time or full-time
                    employee.
                  example: full_time
                overtimeExemptStatus:
                  type: string
                  enum:
                    - exempt
                    - non_exempt
                  description: >
                    Indicates whether this employee is exempt from overtime pay.
                    This classification is based on U.S. labor laws (FLSA).
                  example: exempt
                keyEmployeeStatus:
                  type: string
                  enum:
                    - key_employee
                    - non_key_employee
                  description: Indicates whether this employee is a key employee.
                  example: key_employee
                gender:
                  type: string
                  enum:
                    - male
                    - female
                  description: This employee's gender.
                  example: male
                hiredDate:
                  type: string
                  format: date
                  description: >-
                    The date this employee was hired, in ISO 8601 format
                    (YYYY-MM-DD).
                  example: '2024-01-01'
                originalHireDate:
                  type: string
                  format: date
                  description: >-
                    The original hire date for this employee, in ISO 8601 format
                    (YYYY-MM-DD).
                  example: '2024-01-01'
                adjustedServiceDate:
                  type: string
                  format: date
                  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'
                terminationDate:
                  type: string
                  format: date
                  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'
                birthDate:
                  type: string
                  format: date
                  description: >-
                    This employee's date of birth, in ISO 8601 format
                    (YYYY-MM-DD).
                  example: '1990-01-01'
                usCitizenshipStatus:
                  type: string
                  enum:
                    - citizen
                    - non_citizen
                  description: Indicates whether this employee is a U.S. citizen.
                  example: citizen
                ethnicity:
                  type: string
                  enum:
                    - american_indian
                    - asian
                    - black
                    - hawaiian
                    - hispanic
                    - white
                    - two_or_more_races
                  description: This employee's ethnicity.
                  example: asian
                disabilityStatus:
                  type: string
                  enum:
                    - disabled
                    - non_disabled
                  description: Indicates whether this employee is disabled.
                  example: disabled
                disabilityDescription:
                  type: string
                  description: A description of this employee's disability.
                  example: Cerebral Palsy
                i9OnFileStatus:
                  type: string
                  enum:
                    - on_file
                    - not_on_file
                  description: Indicates whether this employee's I-9 is on file.
                  example: on_file
                workAuthorizationExpirationDate:
                  type: string
                  format: date
                  description: >-
                    The date this employee's work authorization expires, in ISO
                    8601 format (YYYY-MM-DD).
                  example: '2024-01-01'
                usVeteranStatus:
                  type: string
                  enum:
                    - veteran
                    - non_veteran
                  description: Indicates whether this employee is a U.S. veteran.
                  example: veteran
                militaryStatus:
                  type: string
                  enum:
                    - active
                    - reserve
                  description: This employee's military status if they are a U.S. veteran.
                  example: active
                accountNumber:
                  type: string
                  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:
                  type: string
                  description: A note or comment about this employee.
                  example: This employee is a key employee.
                additionalNotes:
                  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
                  minItems: 1
                  description: Additional notes about this employee.
                billingRateId:
                  type: string
                  description: >-
                    The employee's billing rate, used to override service item
                    rates in time tracking activities.
                  example: 80000001-1234567890
                employeePayroll:
                  type: object
                  properties:
                    payPeriod:
                      type: string
                      enum:
                        - biweekly
                        - daily
                        - monthly
                        - quarterly
                        - semimonthly
                        - weekly
                        - yearly
                      description: >-
                        How frequently this employee is paid (e.g., weekly,
                        biweekly, monthly). This determines the schedule for
                        generating paychecks.
                      example: weekly
                    classId:
                      type: string
                      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
                    earnings:
                      type: array
                      items:
                        type: object
                        properties:
                          payrollWageItemId:
                            type: string
                            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
                          rate:
                            type: string
                            description: >-
                              The hourly rate for this employee, represented as
                              a decimal string.
                            example: '10.00'
                          ratePercent:
                            type: string
                            description: >-
                              The hourly rate for this employee expressed as a
                              percentage.
                            example: '10.5'
                        required:
                          - payrollWageItemId
                        additionalProperties: false
                      minItems: 1
                      description: The employee's earnings.
                    useTimeDataToCreatePaychecks:
                      type: string
                      enum:
                        - does_not_use_time_data
                        - not_set
                        - uses_time_data
                      description: >-
                        Indicates whether this employee is using time-tracking
                        data to create paychecks.
                      example: uses_time_data
                    sickHours:
                      type: object
                      properties:
                        hoursAvailable:
                          type: string
                          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:
                          type: string
                          enum:
                            - accrues_annually
                            - accrues_hourly
                            - accrues_per_paycheck
                          description: >-
                            How frequently the employee's sick hours are
                            accrued.
                          example: accrues_per_paycheck
                        hoursAccruedPerPeriod:
                          type: string
                          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:
                          type: string
                          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:
                          type: boolean
                          description: >-
                            Indicates whether the employee's sick hours reset to
                            zero at the beginning of the new year.
                          example: false
                        hoursUsed:
                          type: string
                          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:
                          type: string
                          format: date
                          description: >-
                            The date the employee's sick hours began to accrue,
                            in ISO 8601 format (YYYY-MM-DD).
                          example: '2024-01-01'
                      additionalProperties: false
                      description: >-
                        The employee's sick hours, including how sick time is
                        accrued and the total hours accrued.
                    vacationHours:
                      type: object
                      properties:
                        hoursAvailable:
                          type: string
                          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:
                          type: string
                          enum:
                            - accrues_annually
                            - accrues_hourly
                            - accrues_per_paycheck
                          description: >-
                            How frequently the employee's vacation hours are
                            accrued.
                          example: accrues_per_paycheck
                        hoursAccruedPerPeriod:
                          type: string
                          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:
                          type: string
                          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:
                          type: boolean
                          description: >-
                            Indicates whether the employee's vacation hours
                            reset to zero at the beginning of the new year.
                          example: false
                        hoursUsed:
                          type: string
                          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:
                          type: string
                          format: date
                          description: >-
                            The date the employee's vacation hours began to
                            accrue, in ISO 8601 format (YYYY-MM-DD).
                          example: '2024-01-01'
                      additionalProperties: false
                      description: >-
                        The employee's vacation hours, including how vacation
                        time is accrued and the total hours accrued.
                  additionalProperties: false
                  description: The employee's payroll information.
                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:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the employee to
            retrieve.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the employee to
              retrieve.
            example: 80000001-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns the specified employee.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: path
          name: id
          description: The QuickBooks-assigned unique identifier of the employee to update.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the employee to
              update.
            example: 80000001-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      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:
                  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:
                  type: string
                  description: >-
                    The employee's formal salutation title that precedes their
                    name, such as "Mr.", "Ms.", or "Dr.".
                  example: Dr.
                firstName:
                  type: string
                  maxLength: 25
                  description: |-
                    The employee's first name.

                    Maximum length: 25 characters.
                  example: John
                middleName:
                  type: string
                  maxLength: 5
                  description: |-
                    The employee's middle name.

                    Maximum length: 5 characters.
                  example: A.
                lastName:
                  type: string
                  maxLength: 25
                  description: |-
                    The employee's last name.

                    Maximum length: 25 characters.
                  example: Doe
                jobTitle:
                  type: string
                  description: The employee's job title.
                  example: Purchasing Manager
                supervisorId:
                  type: string
                  description: >-
                    The employee's supervisor. Found in the "employment job
                    details" section of the employee's record in QuickBooks.
                  example: 80000001-1234567890
                department:
                  type: string
                  description: >-
                    The employee's department. Found in the "employment job
                    details" section of the employee's record in QuickBooks.
                  example: Sales
                description:
                  type: string
                  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:
                  type: string
                  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:
                  type: object
                  properties:
                    line1:
                      type: string
                      maxLength: 41
                      description: >-
                        The first line of the employee address (e.g., street, PO
                        Box, or company name).


                        Maximum length: 41 characters.
                      example: Conductor Labs Inc.
                    line2:
                      type: string
                      maxLength: 41
                      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.
                    line3:
                      type: string
                      maxLength: 41
                      description: |-
                        The third line of the employee address, if needed.

                        Maximum length: 41 characters.
                      example: Suite 100
                    line4:
                      type: string
                      maxLength: 41
                      description: |-
                        The fourth line of the employee address, if needed.

                        Maximum length: 41 characters.
                      example: ''
                    city:
                      type: string
                      maxLength: 31
                      description: >-
                        The city, district, suburb, town, or village name of the
                        employee address.


                        Maximum length: 31 characters.
                      example: San Francisco
                    state:
                      type: string
                      enum:
                        - none
                        - armed_forces_americas
                        - armed_forces_europe
                        - armed_forces_pacific
                        - AK
                        - AL
                        - AR
                        - AZ
                        - CA
                        - CO
                        - CT
                        - DC
                        - DE
                        - FL
                        - GA
                        - HI
                        - IA
                        - ID
                        - IL
                        - IN
                        - KS
                        - KY
                        - LA
                        - MA
                        - MD
                        - ME
                        - MI
                        - MN
                        - MO
                        - MS
                        - MT
                        - NB
                        - NC
                        - ND
                        - NE
                        - NH
                        - NJ
                        - NM
                        - NV
                        - NY
                        - OH
                        - OK
                        - OR
                        - PA
                        - PR
                        - RI
                        - SC
                        - SD
                        - TN
                        - TX
                        - UT
                        - VA
                        - VT
                        - WA
                        - WI
                        - WV
                        - WY
                      description: >-
                        The U.S. state of the employee address. QuickBooks
                        requires this field to be a U.S. state abbreviation
                        (e.g., "CA" for California). See enum for all possible
                        values.
                      example: CA
                    postalCode:
                      type: string
                      maxLength: 13
                      description: |-
                        The postal code or ZIP code of the employee address.

                        Maximum length: 13 characters.
                      example: '94110'
                    country:
                      type: string
                      description: The country name of the employee address.
                      example: United States
                  additionalProperties: false
                  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:
                  type: string
                  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:
                  type: string
                  description: The employee's primary telephone number.
                  example: +1-555-123-4567
                mobile:
                  type: string
                  description: The employee's mobile phone number.
                  example: +1-555-555-1212
                pager:
                  type: string
                  description: The employee's pager number.
                  example: +1-555-555-1212
                pagerPin:
                  type: string
                  description: The employee's pager PIN.
                  example: '1234'
                alternatePhone:
                  type: string
                  description: The employee's alternate telephone number.
                  example: +1-555-987-6543
                fax:
                  type: string
                  description: The employee's fax number.
                  example: +1-555-555-1212
                email:
                  type: string
                  description: The employee's email address.
                  example: employee@example.com
                customContactFields:
                  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
                  minItems: 1
                  description: >-
                    Additional custom contact fields for this employee, such as
                    phone numbers or email addresses.
                emergencyContact:
                  type: object
                  properties:
                    primaryContact:
                      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:
                          type: string
                          enum:
                            - brother
                            - daughter
                            - father
                            - friend
                            - mother
                            - other
                            - partner
                            - sister
                            - son
                            - spouse
                          description: The relationship of the employee to the employee.
                          example: spouse
                      required:
                        - name
                        - value
                      additionalProperties: false
                      description: The employee's primary emergency contact.
                    secondaryContact:
                      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:
                          type: string
                          enum:
                            - brother
                            - daughter
                            - father
                            - friend
                            - mother
                            - other
                            - partner
                            - sister
                            - son
                            - spouse
                          description: The relationship of the employee to the employee.
                          example: spouse
                      required:
                        - name
                        - value
                      additionalProperties: false
                      description: The employee's secondary emergency contact.
                  additionalProperties: false
                  description: The employee's emergency contacts.
                employeeType:
                  type: string
                  enum:
                    - officer
                    - owner
                    - regular
                    - statutory
                  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:
                  type: string
                  enum:
                    - full_time
                    - part_time
                  description: >-
                    Indicates whether this employee is a part-time or full-time
                    employee.
                  example: full_time
                overtimeExemptStatus:
                  type: string
                  enum:
                    - exempt
                    - non_exempt
                  description: >
                    Indicates whether this employee is exempt from overtime pay.
                    This classification is based on U.S. labor laws (FLSA).
                  example: exempt
                keyEmployeeStatus:
                  type: string
                  enum:
                    - key_employee
                    - non_key_employee
                  description: Indicates whether this employee is a key employee.
                  example: key_employee
                hiredDate:
                  type: string
                  format: date
                  description: >-
                    The date this employee was hired, in ISO 8601 format
                    (YYYY-MM-DD).
                  example: '2024-01-01'
                originalHireDate:
                  type: string
                  format: date
                  description: >-
                    The original hire date for this employee, in ISO 8601 format
                    (YYYY-MM-DD).
                  example: '2024-01-01'
                adjustedServiceDate:
                  type: string
                  format: date
                  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'
                terminationDate:
                  type: string
                  format: date
                  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'
                birthDate:
                  type: string
                  format: date
                  description: >-
                    This employee's date of birth, in ISO 8601 format
                    (YYYY-MM-DD).
                  example: '1990-01-01'
                usCitizenshipStatus:
                  type: string
                  enum:
                    - citizen
                    - non_citizen
                  description: Indicates whether this employee is a U.S. citizen.
                  example: citizen
                ethnicity:
                  type: string
                  enum:
                    - american_indian
                    - asian
                    - black
                    - hawaiian
                    - hispanic
                    - white
                    - two_or_more_races
                  description: This employee's ethnicity.
                  example: asian
                disabilityStatus:
                  type: string
                  enum:
                    - disabled
                    - non_disabled
                  description: Indicates whether this employee is disabled.
                  example: disabled
                disabilityDescription:
                  type: string
                  description: A description of this employee's disability.
                  example: Cerebral Palsy
                i9OnFileStatus:
                  type: string
                  enum:
                    - on_file
                    - not_on_file
                  description: Indicates whether this employee's I-9 is on file.
                  example: on_file
                workAuthorizationExpirationDate:
                  type: string
                  format: date
                  description: >-
                    The date this employee's work authorization expires, in ISO
                    8601 format (YYYY-MM-DD).
                  example: '2024-01-01'
                usVeteranStatus:
                  type: string
                  enum:
                    - veteran
                    - non_veteran
                  description: Indicates whether this employee is a U.S. veteran.
                  example: veteran
                militaryStatus:
                  type: string
                  enum:
                    - active
                    - reserve
                  description: This employee's military status if they are a U.S. veteran.
                  example: active
                accountNumber:
                  type: string
                  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:
                  type: string
                  description: A note or comment about this employee.
                  example: This employee is a key employee.
                additionalNotes:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: number
                        description: The ID of the note to update.
                        example: 1
                      note:
                        type: string
                        description: The text of this note.
                        example: This is a fun note.
                    required:
                      - id
                      - note
                    additionalProperties: false
                  minItems: 1
                  description: Additional notes about this employee.
                billingRateId:
                  type: string
                  description: >-
                    The employee's billing rate, used to override service item
                    rates in time tracking activities.
                  example: 80000001-1234567890
                employeePayroll:
                  type: object
                  properties:
                    payPeriod:
                      type: string
                      enum:
                        - biweekly
                        - daily
                        - monthly
                        - quarterly
                        - semimonthly
                        - weekly
                        - yearly
                      description: >-
                        How frequently this employee is paid (e.g., weekly,
                        biweekly, monthly). This determines the schedule for
                        generating paychecks.
                      example: weekly
                    classId:
                      type: string
                      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
                    deleteAllEarnings:
                      type: boolean
                      description: >-
                        When `true`, deletes all earnings records for this
                        employee.
                      example: false
                    earnings:
                      type: array
                      items:
                        type: object
                        properties:
                          payrollWageItemId:
                            type: string
                            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
                          rate:
                            type: string
                            description: >-
                              The hourly rate for this employee, represented as
                              a decimal string.
                            example: '10.00'
                          ratePercent:
                            type: string
                            description: >-
                              The hourly rate for this employee expressed as a
                              percentage.
                            example: '10.5'
                        required:
                          - payrollWageItemId
                        additionalProperties: false
                      minItems: 1
                      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`.
                    useTimeDataToCreatePaychecks:
                      type: string
                      enum:
                        - does_not_use_time_data
                        - not_set
                        - uses_time_data
                      description: >-
                        Indicates whether this employee is using time-tracking
                        data to create paychecks.
                      example: uses_time_data
                    sickHours:
                      type: object
                      properties:
                        hoursAvailable:
                          type: string
                          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:
                          type: string
                          enum:
                            - accrues_annually
                            - accrues_hourly
                            - accrues_per_paycheck
                          description: >-
                            How frequently the employee's sick hours are
                            accrued.
                          example: accrues_per_paycheck
                        hoursAccruedPerPeriod:
                          type: string
                          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:
                          type: string
                          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:
                          type: boolean
                          description: >-
                            Indicates whether the employee's sick hours reset to
                            zero at the beginning of the new year.
                          example: false
                        hoursUsed:
                          type: string
                          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:
                          type: string
                          format: date
                          description: >-
                            The date the employee's sick hours began to accrue,
                            in ISO 8601 format (YYYY-MM-DD).
                          example: '2024-01-01'
                      additionalProperties: false
                      description: >-
                        The employee's sick hours, including how sick time is
                        accrued and the total hours accrued.
                    vacationHours:
                      type: object
                      properties:
                        hoursAvailable:
                          type: string
                          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:
                          type: string
                          enum:
                            - accrues_annually
                            - accrues_hourly
                            - accrues_per_paycheck
                          description: >-
                            How frequently the employee's vacation hours are
                            accrued.
                          example: accrues_per_paycheck
                        hoursAccruedPerPeriod:
                          type: string
                          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:
                          type: string
                          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:
                          type: boolean
                          description: >-
                            Indicates whether the employee's vacation hours
                            reset to zero at the beginning of the new year.
                          example: false
                        hoursUsed:
                          type: string
                          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:
                          type: string
                          format: date
                          description: >-
                            The date the employee's vacation hours began to
                            accrue, in ISO 8601 format (YYYY-MM-DD).
                          example: '2024-01-01'
                      additionalProperties: false
                      description: >-
                        The employee's vacation hours, including how vacation
                        time is accrued and the total hours accrued.
                  additionalProperties: false
                  description: The employee's payroll information.
              required:
                - revisionNumber
              additionalProperties: false
      responses:
        '200':
          description: Returns the updated employee.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: query
          name: ids
          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.
          schema:
            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.
            example:
              - 123ABC-1234567890
        - in: query
          name: refNumbers
          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.
          schema:
            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.
            example:
              - ESTIMATE-1234
        - in: query
          name: limit
          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.
          schema:
            type: integer
            minimum: 1
            maximum: 150
            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
        - in: query
          name: cursor
          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.
          schema:
            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.
            example: 12345678-abcd-abcd-example-1234567890ab
        - in: query
          name: updatedAfter
          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.
          schema:
            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.
            example: 2025-01-01T12:34:56.000Z
        - in: query
          name: updatedBefore
          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.
          schema:
            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.
            example: 2025-02-01T12:34:56.000Z
        - in: query
          name: transactionDateFrom
          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`).
          schema:
            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`).
            example: '2025-01-01'
        - in: query
          name: transactionDateTo
          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`).
          schema:
            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`).
            example: '2025-02-01'
        - in: query
          name: customerIds
          description: Filter for estimates created for these customers.
          schema:
            type: array
            items:
              type: string
            description: Filter for estimates created for these customers.
            example:
              - 80000001-1234567890
        - in: query
          name: accountIds
          description: Filter for estimates associated with these accounts.
          schema:
            type: array
            items:
              type: string
            description: Filter for estimates associated with these accounts.
            example:
              - 80000001-1234567890
        - in: query
          name: refNumberContains
          description: >-
            Filter for estimates whose `refNumber` contains this substring.


            **NOTE**: If you use this parameter, you cannot also use
            `refNumberStartsWith` or `refNumberEndsWith`.
          schema:
            type: string
            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
        - in: query
          name: refNumberStartsWith
          description: >-
            Filter for estimates whose `refNumber` starts with this substring.


            **NOTE**: If you use this parameter, you cannot also use
            `refNumberContains` or `refNumberEndsWith`.
          schema:
            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`.
            example: EST
        - in: query
          name: refNumberEndsWith
          description: >-
            Filter for estimates whose `refNumber` ends with this substring.


            **NOTE**: If you use this parameter, you cannot also use
            `refNumberContains` or `refNumberStartsWith`.
          schema:
            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`.
            example: '1234'
        - in: query
          name: refNumberFrom
          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.
          schema:
            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.
            example: EST-0001
        - in: query
          name: refNumberTo
          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.
          schema:
            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.
            example: EST-9999
        - in: query
          name: currencyIds
          description: Filter for estimates in these currencies.
          schema:
            type: array
            items:
              type: string
            description: Filter for estimates in these currencies.
            example:
              - 80000001-1234567890
        - in: query
          name: includeLineItems
          description: Whether to include line items in the response. Defaults to `true`.
          schema:
            type: boolean
            description: Whether to include line items in the response. Defaults to `true`.
            example: true
            default: true
        - in: query
          name: includeLinkedTransactions
          description: >-
            Whether to include linked transactions in the response. Defaults to
            `false`. For example, a payment linked to the corresponding
            estimate.
          schema:
            type: boolean
            description: >-
              Whether to include linked transactions in the response. Defaults
              to `false`. For example, a payment linked to the corresponding
              estimate.
            example: false
            default: false
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns a list of estimates.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          content:
            application/json:
              schema:
                type: object
                properties:
                  objectType:
                    type: string
                    const: list
                    description: The type of object. This value is always `"list"`.
                    example: 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:
                    type:
                      - string
                      - '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:
                    type:
                      - number
                      - '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
          description: The ID of the End-User to receive this request.
          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
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                customerId:
                  type: string
                  description: The customer or customer-job associated with this estimate.
                  example: 80000001-1234567890
                classId:
                  type: string
                  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
                documentTemplateId:
                  type: string
                  description: >-
                    The predefined template in QuickBooks that determines the
                    layout and formatting for this estimate when printed or
                    displayed.
                  example: 80000001-1234567890
                transactionDate:
                  type: string
                  format: date
                  description: The date of this estimate, in ISO 8601 format (YYYY-MM-DD).
                  example: '2024-10-01'
                refNumber:
                  type: string
                  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).
                  example: EST-1234
                billingAddress:
                  type: object
                  properties:
                    line1:
                      type: string
                      maxLength: 41
                      description: >-
                        The first line of the address (e.g., street, PO Box, or
                        company name).


                        Maximum length: 41 characters.
                      example: Conductor Labs Inc.
                    line2:
                      type: string
                      maxLength: 41
                      description: >-
                        The second line of the address, if needed (e.g.,
                        apartment, suite, unit, or building).


                        Maximum length: 41 characters.
                      example: 540 Market St.
                    line3:
                      type: string
                      maxLength: 41
                      description: |-
                        The third line of the address, if needed.

                        Maximum length: 41 characters.
                      example: Suite 100
                    line4:
                      type: string
                      maxLength: 41
                      description: |-
                        The fourth line of the address, if needed.

                        Maximum length: 41 characters.
                      example: ''
                    line5:
                      type: string
                      maxLength: 41
                      description: |-
                        The fifth line of the address, if needed.

                        Maximum length: 41 characters.
                      example: ''
                    city:
                      type: string
                      maxLength: 31
                      description: >-
                        The city, district, suburb, town, or village name of the
                        address.


                        Maximum length: 31 characters.
                      example: San Francisco
                    state:
                      type: string
                      maxLength: 21
                      description: >-
                        The state, county, province, or region name of the
                        address.


                        Maximum length: 21 characters.
                      example: CA
                    postalCode:
                      type: string
                      maxLength: 13
                      description: |-
                        The postal code or ZIP code of the address.

                        Maximum length: 13 characters.
                      example: '94110'
                    country:
                      type: string
                      description: The country name of the address.
                      example: United States
                    note:
                      type: string
                      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
                  additionalProperties: false
                  description: The estimate's billing address.
                shippingAddress:
                  type: object
                  properties:
                    line1:
                      type: string
                      maxLength: 41
                      description: >-
                        The first line of the address (e.g., street, PO Box, or
                        company name).


                        Maximum length: 41 characters.
                      example: Conductor Labs Inc.
                    line2:
                      type: string
                      maxLength: 41
                      description: >-
                        The second line of the address, if needed (e.g.,
                        apartment, suite, unit, or building).


                        Maximum length: 41 characters.
                      example: 540 Market St.
                    line3:
                      type: string
                      maxLength: 41
                      description: |-
                        The third line of the address, if needed.

                        Maximum length: 41 characters.
                      example: Suite 100
                    line4:
                      type: string
                      maxLength: 41
                      description: |-
                        The fourth line of the address, if needed.

                        Maximum length: 41 characters.
                      example: ''
                    line5:
                      type: string
                      maxLength: 41
                      description: |-
                        The fifth line of the address, if needed.

                        Maximum length: 41 characters.
                      example: ''
                    city:
                      type: string
                      maxLength: 31
                      description: >-
                        The city, district, suburb, town, or village name of the
                        address.


                        Maximum length: 31 characters.
                      example: San Francisco
                    state:
                      type: string
                      maxLength: 21
                      description: >-
                        The state, county, province, or region name of the
                        address.


                        Maximum length: 21 characters.
                      example: CA
                    postalCode:
                      type: string
                      maxLength: 13
                      description: |-
                        The postal code or ZIP code of the address.

                        Maximum length: 13 characters.
                      example: '94110'
                    country:
                      type: string
                      description: The country name of the address.
                      example: United States
                    note:
                      type: string
                      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
                  additionalProperties: false
                  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
                  default: true
                purchaseOrderNumber:
                  type: string
                  maxLength: 25
                  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
                termsId:
                  type: string
                  description: >-
                    The estimate's payment terms, defining when payment is due
                    and any applicable discounts.
                  example: 80000001-1234567890
                dueDate:
                  type: string
                  format: date
                  description: >-
                    The date by which this estimate must be paid, in ISO 8601
                    format (YYYY-MM-DD).
                  example: '2024-10-31'
                salesRepresentativeId:
                  type: string
                  description: >-
                    The estimate's sales representative. Sales representatives
                    can be employees, vendors, or other names in QuickBooks.
                  example: 80000001-1234567890
                shipmentOrigin:
                  type: string
                  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
                salesTaxItemId:
                  type: string
                  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
                memo:
                  type: string
                  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
                customerMessageId:
                  type: string
                  description: The message to display to the customer on the estimate.
                  example: 80000001-1234567890
                isQueuedForEmail:
                  type: boolean
                  description: >-
                    Indicates whether this estimate is included in the queue of
                    documents for QuickBooks to email to the customer.
                  example: true
                salesTaxCodeId:
                  type: string
                  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. If QuickBooks is not set up to charge sales tax
                    (via the "Do You Charge Sales Tax?" preference), it will
                    assign the default non-taxable code to all sales.
                  example: 80000001-1234567890
                otherCustomField:
                  type: string
                  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
                exchangeRate:
                  type: number
                  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
                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:
                  type: array
                  items:
                    type: object
                    properties:
                      itemId:
                        type: string
                        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
                      description:
                        type: string
                        description: A description of this estimate line.
                        example: Graphic illustrations for website redesign
                      quantity:
                        type: number
                        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:
                        type: string
                        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
                      rate:
                        type: string
                        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:
                        type: string
                        description: >-
                          The price of this estimate line expressed as a
                          percentage. Typically used for discount or markup
                          items.
                        example: '10.5'
                      classId:
                        type: string
                        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
                      amount:
                        type: string
                        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'
                      priceRuleConflictStrategy:
                        type: string
                        enum:
                          - base_price
                          - zero
                        description: >-
                          Specifies how to resolve price rule conflicts when
                          adding or modifying this estimate line.
                        example: base_price
                      inventorySiteId:
                        type: string
                        description: >-
                          The site location where inventory for the item
                          associated with this estimate line is stored.
                        example: 80000001-1234567890
                      inventorySiteLocationId:
                        type: string
                        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
                      salesTaxCodeId:
                        type: string
                        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. If QuickBooks is not set up to charge
                          sales tax (via the "Do You Charge Sales Tax?"
                          preference), it will assign the default non-taxable
                          code to all sales.
                        example: 80000001-1234567890
                      markupRate:
                        type: string
                        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:
                        type: string
                        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'
                      priceLevelId:
                        type: string
                        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
                      overrideItemAccountId:
                        type: string
                        description: >-
                          The account to use for this estimate line, overriding
                          the default account associated with the item.
                        example: 80000001-1234567890
                      otherCustomField1:
                        type: string
                        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:
                        type: string
                        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:
                          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
                        minItems: 1
                        description: >-
                          The custom fields for the estimate line object, added
                          as user-defined data extensions, not included in the
                          standard QuickBooks object.
                    additionalProperties: false
                  minItems: 1
                  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.
                lineGroups:
                  type: array
                  items:
                    type: object
                    properties:
                      itemGroupId:
                        type: string
                        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
                      quantity:
                        type: number
                        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:
                        type: string
                        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
                      inventorySiteId:
                        type: string
                        description: >-
                          The site location where inventory for the item group
                          associated with this estimate line group is stored.
                        example: 80000001-1234567890
                      inventorySiteLocationId:
                        type: string
                        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
                      customFields:
                        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
                        minItems: 1
                        description: >-
                          The custom fields for the estimate line group object,
                          added as user-defined data extensions, not included in
                          the standard QuickBooks object.
                    required:
                      - itemGroupId
                    additionalProperties: false
                  minItems: 1
                  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.
              required:
                - customerId
                - transactionDate
              additionalProperties: false
      responses:
        '200':
          description: Returns the newly created estimate.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the estimate to
            retrieve.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the estimate to
              retrieve.
            example: 123ABC-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns the specified estimate.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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.
      security:
        - BearerAuth: []
      parameters:
        - in: path
          name: id
          description: The QuickBooks-assigned unique identifier of the estimate to update.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the estimate to
              update.
            example: 123ABC-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      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:
                  type: string
                  description: The customer or customer-job associated with this estimate.
                  example: 80000001-1234567890
                classId:
                  type: string
                  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
                documentTemplateId:
                  type: string
                  description: >-
                    The predefined template in QuickBooks that determines the
                    layout and formatting for this estimate when printed or
                    displayed.
                  example: 80000001-1234567890
                transactionDate:
                  type: string
                  format: date
                  description: The date of this estimate, in ISO 8601 format (YYYY-MM-DD).
                  example: '2024-10-01'
                refNumber:
                  type: string
                  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:
                  type: object
                  properties:
                    line1:
                      type: string
                      maxLength: 41
                      description: >-
                        The first line of the address (e.g., street, PO Box, or
                        company name).


                        Maximum length: 41 characters.
                      example: Conductor Labs Inc.
                    line2:
                      type: string
                      maxLength: 41
                      description: >-
                        The second line of the address, if needed (e.g.,
                        apartment, suite, unit, or building).


                        Maximum length: 41 characters.
                      example: 540 Market St.
                    line3:
                      type: string
                      maxLength: 41
                      description: |-
                        The third line of the address, if needed.

                        Maximum length: 41 characters.
                      example: Suite 100
                    line4:
                      type: string
                      maxLength: 41
                      description: |-
                        The fourth line of the address, if needed.

                        Maximum length: 41 characters.
                      example: ''
                    line5:
                      type: string
                      maxLength: 41
                      description: |-
                        The fifth line of the address, if needed.

                        Maximum length: 41 characters.
                      example: ''
                    city:
                      type: string
                      maxLength: 31
                      description: >-
                        The city, district, suburb, town, or village name of the
                        address.


                        Maximum length: 31 characters.
                      example: San Francisco
                    state:
                      type: string
                      maxLength: 21
                      description: >-
                        The state, county, province, or region name of the
                        address.


                        Maximum length: 21 characters.
                      example: CA
                    postalCode:
                      type: string
                      maxLength: 13
                      description: |-
                        The postal code or ZIP code of the address.

                        Maximum length: 13 characters.
                      example: '94110'
                    country:
                      type: string
                      description: The country name of the address.
                      example: United States
                    note:
                      type: string
                      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
                  additionalProperties: false
                  description: The estimate's billing address.
                shippingAddress:
                  type: object
                  properties:
                    line1:
                      type: string
                      maxLength: 41
                      description: >-
                        The first line of the address (e.g., street, PO Box, or
                        company name).


                        Maximum length: 41 characters.
                      example: Conductor Labs Inc.
                    line2:
                      type: string
                      maxLength: 41
                      description: >-
                        The second line of the address, if needed (e.g.,
                        apartment, suite, unit, or building).


                        Maximum length: 41 characters.
                      example: 540 Market St.
                    line3:
                      type: string
                      maxLength: 41
                      description: |-
                        The third line of the address, if needed.

                        Maximum length: 41 characters.
                      example: Suite 100
                    line4:
                      type: string
                      maxLength: 41
                      description: |-
                        The fourth line of the address, if needed.

                        Maximum length: 41 characters.
                      example: ''
                    line5:
                      type: string
                      maxLength: 41
                      description: |-
                        The fifth line of the address, if needed.

                        Maximum length: 41 characters.
                      example: ''
                    city:
                      type: string
                      maxLength: 31
                      description: >-
                        The city, district, suburb, town, or village name of the
                        address.


                        Maximum length: 31 characters.
                      example: San Francisco
                    state:
                      type: string
                      maxLength: 21
                      description: >-
                        The state, county, province, or region name of the
                        address.


                        Maximum length: 21 characters.
                      example: CA
                    postalCode:
                      type: string
                      maxLength: 13
                      description: |-
                        The postal code or ZIP code of the address.

                        Maximum length: 13 characters.
                      example: '94110'
                    country:
                      type: string
                      description: The country name of the address.
                      example: United States
                    note:
                      type: string
                      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
                  additionalProperties: false
                  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
                createChangeOrder:
                  type: boolean
                  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
                purchaseOrderNumber:
                  type: string
                  maxLength: 25
                  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
                termsId:
                  type: string
                  description: >-
                    The estimate's payment terms, defining when payment is due
                    and any applicable discounts.
                  example: 80000001-1234567890
                dueDate:
                  type: string
                  format: date
                  description: >-
                    The date by which this estimate must be paid, in ISO 8601
                    format (YYYY-MM-DD).
                  example: '2024-10-31'
                salesRepresentativeId:
                  type: string
                  description: >-
                    The estimate's sales representative. Sales representatives
                    can be employees, vendors, or other names in QuickBooks.
                  example: 80000001-1234567890
                shipmentOrigin:
                  type: string
                  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
                salesTaxItemId:
                  type: string
                  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
                memo:
                  type: string
                  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
                customerMessageId:
                  type: string
                  description: The message to display to the customer on the estimate.
                  example: 80000001-1234567890
                isQueuedForEmail:
                  type: boolean
                  description: >-
                    Indicates whether this estimate is included in the queue of
                    documents for QuickBooks to email to the customer.
                  example: true
                salesTaxCodeId:
                  type: string
                  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. If QuickBooks is not set up to charge sales tax
                    (via the "Do You Charge Sales Tax?" preference), it will
                    assign the default non-taxable code to all sales.
                  example: 80000001-1234567890
                otherCustomField:
                  type: string
                  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
                exchangeRate:
                  type: number
                  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
                lines:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                        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:
                        type: string
                        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
                      description:
                        type: string
                        description: A description of this estimate line.
                        example: Graphic illustrations for website redesign
                      quantity:
                        type: number
                        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:
                        type: string
                        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
                      overrideUnitOfMeasureSetId:
                        type: string
                        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
                      rate:
                        type: string
                        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:
                        type: string
                        description: >-
                          The price of this estimate line expressed as a
                          percentage. Typically used for discount or markup
                          items.
                        example: '10.5'
                      classId:
                        type: string
                        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
                      amount:
                        type: string
                        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'
                      priceRuleConflictStrategy:
                        type: string
                        enum:
                          - base_price
                          - zero
                        description: >-
                          Specifies how to resolve price rule conflicts when
                          adding or modifying this estimate line.
                        example: base_price
                      inventorySiteId:
                        type: string
                        description: >-
                          The site location where inventory for the item
                          associated with this estimate line is stored.
                        example: 80000001-1234567890
                      inventorySiteLocationId:
                        type: string
                        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
                      salesTaxCodeId:
                        type: string
                        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. If QuickBooks is not set up to charge
                          sales tax (via the "Do You Charge Sales Tax?"
                          preference), it will assign the default non-taxable
                          code to all sales.
                        example: 80000001-1234567890
                      markupRate:
                        type: string
                        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:
                        type: string
                        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'
                      priceLevelId:
                        type: string
                        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
                      otherCustomField1:
                        type: string
                        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:
                        type: string
                        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
                    required:
                      - id
                    additionalProperties: false
                  minItems: 1
                  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.
                lineGroups:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                        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:
                        type: string
                        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
                      quantity:
                        type: number
                        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:
                        type: string
                        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
                      overrideUnitOfMeasureSetId:
                        type: string
                        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
                      lines:
                        type: array
                        items:
                          type: object
                          properties:
                            id:
                              type: string
                              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:
                              type: string
                              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
                            description:
                              type: string
                              description: A description of this estimate line.
                              example: Graphic illustrations for website redesign
                            quantity:
                              type: number
                              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:
                              type: string
                              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
                            overrideUnitOfMeasureSetId:
                              type: string
                              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
                            rate:
                              type: string
                              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:
                              type: string
                              description: >-
                                The price of this estimate line expressed as a
                                percentage. Typically used for discount or
                                markup items.
                              example: '10.5'
                            classId:
                              type: string
                              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
                            amount:
                              type: string
                              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'
                            priceRuleConflictStrategy:
                              type: string
                              enum:
                                - base_price
                                - zero
                              description: >-
                                Specifies how to resolve price rule conflicts
                                when adding or modifying this estimate line.
                              example: base_price
                            inventorySiteId:
                              type: string
                              description: >-
                                The site location where inventory for the item
                                associated with this estimate line is stored.
                              example: 80000001-1234567890
                            inventorySiteLocationId:
                              type: string
                              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
                            salesTaxCodeId:
                              type: string
                              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. If QuickBooks is not set
                                up to charge sales tax (via the "Do You Charge
                                Sales Tax?" preference), it will assign the
                                default non-taxable code to all sales.
                              example: 80000001-1234567890
                            markupRate:
                              type: string
                              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:
                              type: string
                              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'
                            priceLevelId:
                              type: string
                              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
                            otherCustomField1:
                              type: string
                              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:
                              type: string
                              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
                          required:
                            - id
                          additionalProperties: false
                        minItems: 1
                        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.
                    required:
                      - id
                    additionalProperties: false
                  minItems: 1
                  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.
              required:
                - revisionNumber
              additionalProperties: false
      responses:
        '200':
          description: Returns the updated estimate.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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 a 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: path
          name: id
          description: The QuickBooks-assigned unique identifier of the estimate to delete.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the estimate to
              delete.
            example: 123ABC-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: >-
            Returns a confirmation of the deletion with the ID of the deleted
            estimate.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    description: >-
                      The QuickBooks-assigned unique identifier of the deleted
                      estimate.
                    example: 123ABC-1234567890
                  objectType:
                    type: string
                    const: qbd_estimate
                    description: The type of object. This value is always `"qbd_estimate"`.
                    example: qbd_estimate
                  refNumber:
                    type:
                      - string
                      - '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: query
          name: ids
          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.
          schema:
            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.
            example:
              - 123ABC-1234567890
        - in: query
          name: refNumbers
          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.
          schema:
            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.
            example:
              - INVENTORY ADJUSTMENT-1234
        - in: query
          name: limit
          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.
          schema:
            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.
            example: 10
        - in: query
          name: updatedAfter
          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.
          schema:
            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.
            example: 2025-01-01T12:34:56.000Z
        - in: query
          name: updatedBefore
          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.
          schema:
            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.
            example: 2025-02-01T12:34:56.000Z
        - in: query
          name: transactionDateFrom
          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`).
          schema:
            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`).
            example: '2025-01-01'
        - in: query
          name: transactionDateTo
          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`).
          schema:
            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`).
            example: '2025-02-01'
        - in: query
          name: customerIds
          description: Filter for inventory adjustments associated with these customers.
          schema:
            type: array
            items:
              type: string
            description: Filter for inventory adjustments associated with these customers.
            example:
              - 80000001-1234567890
        - in: query
          name: accountIds
          description: Filter for inventory adjustments associated with these accounts.
          schema:
            type: array
            items:
              type: string
            description: Filter for inventory adjustments associated with these accounts.
            example:
              - 80000001-1234567890
        - in: query
          name: itemIds
          description: Filter for inventory adjustments containing these inventory items.
          schema:
            type: array
            items:
              type: string
            description: Filter for inventory adjustments containing these inventory items.
            example:
              - 80000001-1234567890
        - in: query
          name: refNumberContains
          description: >-
            Filter for inventory adjustments whose `refNumber` contains this
            substring.


            **NOTE**: If you use this parameter, you cannot also use
            `refNumberStartsWith` or `refNumberEndsWith`.
          schema:
            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`.
            example: INVADJ-1234
        - in: query
          name: refNumberStartsWith
          description: >-
            Filter for inventory adjustments whose `refNumber` starts with this
            substring.


            **NOTE**: If you use this parameter, you cannot also use
            `refNumberContains` or `refNumberEndsWith`.
          schema:
            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`.
            example: INVADJ
        - in: query
          name: refNumberEndsWith
          description: >-
            Filter for inventory adjustments whose `refNumber` ends with this
            substring.


            **NOTE**: If you use this parameter, you cannot also use
            `refNumberContains` or `refNumberStartsWith`.
          schema:
            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`.
            example: '1234'
        - in: query
          name: refNumberFrom
          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.
          schema:
            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.
            example: INVADJ-0001
        - in: query
          name: refNumberTo
          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.
          schema:
            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.
            example: INVADJ-9999
        - in: query
          name: includeLineItems
          description: Whether to include line items in the response. Defaults to `true`.
          schema:
            type: boolean
            description: Whether to include line items in the response. Defaults to `true`.
            example: true
            default: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns a list of inventory adjustments.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          content:
            application/json:
              schema:
                type: object
                properties:
                  objectType:
                    type: string
                    const: list
                    description: The type of object. This value is always `"list"`.
                    example: 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
          description: The ID of the End-User to receive this request.
          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
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                accountId:
                  type: string
                  description: >-
                    The account to which this inventory adjustment is posted for
                    tracking inventory value changes.
                  example: 80000001-1234567890
                transactionDate:
                  type: string
                  format: date
                  description: >-
                    The date of this inventory adjustment, in ISO 8601 format
                    (YYYY-MM-DD).
                  example: '2024-10-01'
                refNumber:
                  type: string
                  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).
                  example: INVADJ-1234
                inventorySiteId:
                  type: string
                  description: >-
                    The site location where inventory for the item associated
                    with this inventory adjustment is stored.
                  example: 80000001-1234567890
                customerId:
                  type: string
                  description: >-
                    The customer or customer-job associated with this inventory
                    adjustment.
                  example: 80000001-1234567890
                classId:
                  type: string
                  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
                memo:
                  type: string
                  description: A memo or note for this inventory adjustment.
                  example: Adjusted quantity due to physical count discrepancy
                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:
                  type: array
                  items:
                    type: object
                    properties:
                      itemId:
                        type: string
                        description: >-
                          The inventory item associated with this inventory
                          adjustment line.
                        example: 80000001-1234567890
                      adjustQuantity:
                        type: object
                        properties:
                          newQuantity:
                            type: number
                            description: >-
                              The new quantity for the inventory item associated
                              with this inventory adjustment line.
                            example: 10
                          quantityDifference:
                            type: number
                            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
                          serialNumber:
                            type: string
                            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
                          lotNumber:
                            type: string
                            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:
                            type: string
                            format: date
                            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'
                          inventorySiteLocationId:
                            type: string
                            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
                        additionalProperties: false
                        description: >-
                          Adjusts the inventory quantity of this inventory item
                          either by setting a new quantity or by adjusting the
                          current quantity up or down.
                      adjustValue:
                        type: object
                        properties:
                          newQuantity:
                            type: number
                            description: >-
                              The new quantity for the inventory item associated
                              with this inventory adjustment line.
                            example: 10
                          quantityDifference:
                            type: number
                            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
                          newValue:
                            type: string
                            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'
                          valueDifference:
                            type: number
                            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
                        additionalProperties: false
                        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.
                      adjustSerialNumber:
                        type: object
                        properties:
                          addSerialNumber:
                            type: string
                            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'
                          removeSerialNumber:
                            type: string
                            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'
                          expirationDate:
                            type: string
                            format: date
                            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'
                          inventorySiteLocationId:
                            type: string
                            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
                        additionalProperties: false
                        description: >-
                          Adjusts the serial number of this inventory adjustment
                          line. This is used for tracking individual units of
                          serialized inventory items.
                      adjustLotNumber:
                        type: object
                        properties:
                          lotNumber:
                            type: string
                            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
                          adjustCount:
                            type: number
                            description: >-
                              The amount to adjust the count of the inventory
                              item associated with this inventory adjustment
                              line.
                            example: 2
                          expirationDate:
                            type: string
                            format: date
                            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'
                          inventorySiteLocationId:
                            type: string
                            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
                        additionalProperties: false
                        description: >-
                          Adjusts the lot number of this inventory adjustment
                          line.
                    required:
                      - itemId
                    additionalProperties: false
                  minItems: 1
                  description: >-
                    The inventory adjustment's item lines, each representing the
                    adjustment of an inventory item's quantity, value, serial
                    number, or lot number.
              required:
                - accountId
                - transactionDate
              additionalProperties: false
      responses:
        '200':
          description: Returns the newly created inventory adjustment.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the inventory
            adjustment to retrieve.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the inventory
              adjustment to retrieve.
            example: 123ABC-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns the specified inventory adjustment.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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.
      security:
        - BearerAuth: []
      parameters:
        - in: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the inventory
            adjustment to update.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the inventory
              adjustment to update.
            example: 123ABC-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      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:
                  type: string
                  description: >-
                    The account to which this inventory adjustment is posted for
                    tracking inventory value changes.
                  example: 80000001-1234567890
                inventorySiteId:
                  type: string
                  description: >-
                    The site location where inventory for the item associated
                    with this inventory adjustment is stored.
                  example: 80000001-1234567890
                transactionDate:
                  type: string
                  format: date
                  description: >-
                    The date of this inventory adjustment, in ISO 8601 format
                    (YYYY-MM-DD).
                  example: '2024-10-01'
                refNumber:
                  type: string
                  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
                customerId:
                  type: string
                  description: >-
                    The customer or customer-job associated with this inventory
                    adjustment.
                  example: 80000001-1234567890
                classId:
                  type: string
                  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
                memo:
                  type: string
                  description: A memo or note for this inventory adjustment.
                  example: Adjusted quantity due to physical count discrepancy
                lines:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                        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:
                        type: string
                        description: >-
                          The inventory item associated with this inventory
                          adjustment line.
                        example: 80000001-1234567890
                      serialNumber:
                        type: string
                        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
                      lotNumber:
                        type: string
                        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
                      adjustCount:
                        type: number
                        description: >-
                          The amount to adjust the count of the inventory item
                          associated with this inventory adjustment line.
                        example: 2
                      expirationDate:
                        type: string
                        format: date
                        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'
                      inventorySiteLocationId:
                        type: string
                        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
                      quantityDifference:
                        type: number
                        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:
                        type: number
                        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
                    additionalProperties: false
                  minItems: 1
                  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.
              required:
                - revisionNumber
              additionalProperties: false
      responses:
        '200':
          description: Returns the updated inventory adjustment.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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 a 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: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the inventory
            adjustment to delete.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the inventory
              adjustment to delete.
            example: 123ABC-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: >-
            Returns a confirmation of the deletion with the ID of the deleted
            inventory adjustment.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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:
                    type: string
                    const: qbd_inventory_adjustment
                    description: >-
                      The type of object. This value is always
                      `"qbd_inventory_adjustment"`.
                    example: qbd_inventory_adjustment
                  refNumber:
                    type:
                      - string
                      - '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-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: query
          name: ids
          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.
          schema:
            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.
            example:
              - 80000001-1234567890
        - in: query
          name: fullNames
          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.
          schema:
            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.
            example:
              - Assemblies:Deluxe Kit
        - in: query
          name: limit
          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.
          schema:
            type: integer
            minimum: 1
            maximum: 150
            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
        - in: query
          name: cursor
          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.
          schema:
            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.
            example: 12345678-abcd-abcd-example-1234567890ab
        - in: query
          name: status
          description: >-
            Filter for inventory assembly items that are active, inactive, or
            both.
          schema:
            type: string
            enum:
              - active
              - all
              - inactive
            default: active
            description: >-
              Filter for inventory assembly items that are active, inactive, or
              both.
            example: active
        - in: query
          name: updatedAfter
          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.
          schema:
            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.
            example: 2025-01-01T12:34:56.000Z
        - in: query
          name: updatedBefore
          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.
          schema:
            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.
            example: 2025-02-01T12:34:56.000Z
        - in: query
          name: nameContains
          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`.
          schema:
            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`.
            example: ABC
        - in: query
          name: nameStartsWith
          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`.
          schema:
            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`.
            example: ABC
        - in: query
          name: nameEndsWith
          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`.
          schema:
            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`.
            example: ABC
        - in: query
          name: nameFrom
          description: >-
            Filter for inventory assembly items whose `name` is alphabetically
            greater than or equal to this value.
          schema:
            type: string
            description: >-
              Filter for inventory assembly items whose `name` is alphabetically
              greater than or equal to this value.
            example: A
        - in: query
          name: nameTo
          description: >-
            Filter for inventory assembly items whose `name` is alphabetically
            less than or equal to this value.
          schema:
            type: string
            description: >-
              Filter for inventory assembly items whose `name` is alphabetically
              less than or equal to this value.
            example: Z
        - in: query
          name: classIds
          description: >-
            Filter for inventory assembly items of these classes. A class is a
            way end-users can categorize inventory assembly items in QuickBooks.
          schema:
            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.
            example:
              - 80000001-1234567890
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns a list of inventory assembly items.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          content:
            application/json:
              schema:
                type: object
                properties:
                  objectType:
                    type: string
                    const: list
                    description: The type of object. This value is always `"list"`.
                    example: 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:
                    type:
                      - string
                      - '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:
                    type:
                      - number
                      - '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
          description: The ID of the End-User to receive this request.
          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
      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:
                  type: object
                  properties:
                    value:
                      type: string
                      description: The item's barcode value.
                      example: '012345678905'
                    assignEvenIfUsed:
                      type: boolean
                      description: >-
                        Indicates whether to assign the barcode even if it is
                        already used.
                      example: false
                      default: false
                    allowOverride:
                      type: boolean
                      description: Indicates whether to allow the barcode to be overridden.
                      example: false
                      default: false
                  additionalProperties: false
                  description: The inventory assembly item's barcode.
                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
                  default: true
                classId:
                  type: string
                  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
                parentId:
                  type: string
                  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
                unitOfMeasureSetId:
                  type: string
                  description: >-
                    The unit-of-measure set associated with this inventory
                    assembly item, which consists of a base unit and related
                    units.
                  example: 80000001-1234567890
                salesTaxCodeId:
                  type: string
                  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. If QuickBooks is not set up to charge sales tax
                    (via the "Do You Charge Sales Tax?" preference), it will
                    assign the default non-taxable code to all sales.
                  example: 80000001-1234567890
                salesDescription:
                  type: string
                  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:
                  type: string
                  description: >-
                    The price at which this inventory assembly item is sold to
                    customers, represented as a decimal string.
                  example: '19.99'
                incomeAccountId:
                  type: string
                  description: >-
                    The income account used to track revenue from sales of this
                    inventory assembly item.
                  example: 80000001-1234567890
                purchaseDescription:
                  type: string
                  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:
                  type: string
                  description: >-
                    The cost at which this inventory assembly item is purchased
                    from vendors, represented as a decimal string.
                  example: '15.75'
                purchaseTaxCodeId:
                  type: string
                  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
                cogsAccountId:
                  type: string
                  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
                preferredVendorId:
                  type: string
                  description: >-
                    The preferred vendor from whom this inventory assembly item
                    is typically purchased.
                  example: 80000001-1234567890
                assetAccountId:
                  type: string
                  description: >-
                    The asset account used to track the current value of this
                    inventory assembly item in inventory.
                  example: 80000001-1234567890
                buildNotificationThreshold:
                  type: number
                  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:
                  type: number
                  description: >-
                    The maximum quantity of this inventory assembly item desired
                    in inventory.
                  example: 200
                quantityOnHand:
                  type: number
                  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
                totalValue:
                  type: string
                  description: >-
                    The total value of this inventory assembly item. 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.
                  example: '1500.00'
                inventoryDate:
                  type: string
                  format: date
                  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'
                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:
                  type: array
                  items:
                    type: object
                    properties:
                      inventoryItemId:
                        type: string
                        description: >-
                          The inventory item associated with this inventory
                          assembly item line.
                        example: 80000001-1234567890
                      quantity:
                        type: number
                        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
                    additionalProperties: false
                  minItems: 1
                  description: The inventory assembly item's lines.
              required:
                - name
                - incomeAccountId
                - cogsAccountId
                - assetAccountId
              additionalProperties: false
      responses:
        '200':
          description: Returns the newly created inventory assembly item.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the inventory assembly
            item to retrieve.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the inventory
              assembly item to retrieve.
            example: 80000001-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns the specified inventory assembly item.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the inventory assembly
            item to update.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the inventory
              assembly item to update.
            example: 80000001-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      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:
                  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:
                  type: object
                  properties:
                    value:
                      type: string
                      description: The item's barcode value.
                      example: '012345678905'
                    assignEvenIfUsed:
                      type: boolean
                      description: >-
                        Indicates whether to assign the barcode even if it is
                        already used.
                      example: false
                      default: false
                    allowOverride:
                      type: boolean
                      description: Indicates whether to allow the barcode to be overridden.
                      example: false
                      default: false
                  additionalProperties: false
                  description: The inventory assembly item's barcode.
                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
                classId:
                  type: string
                  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
                parentId:
                  type: string
                  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
                sku:
                  type: string
                  description: >-
                    The inventory assembly item's stock keeping unit (SKU),
                    which is sometimes the manufacturer's part number.
                  example: MPN-123456
                unitOfMeasureSetId:
                  type: string
                  description: >-
                    The unit-of-measure set associated with this inventory
                    assembly item, which consists of a base unit and related
                    units.
                  example: 80000001-1234567890
                forceUnitOfMeasureChange:
                  type: boolean
                  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
                salesTaxCodeId:
                  type: string
                  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. If QuickBooks is not set up to charge sales tax
                    (via the "Do You Charge Sales Tax?" preference), it will
                    assign the default non-taxable code to all sales.
                  example: 80000001-1234567890
                salesDescription:
                  type: string
                  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:
                  type: string
                  description: >-
                    The price at which this inventory assembly item is sold to
                    customers, represented as a decimal string.
                  example: '19.99'
                incomeAccountId:
                  type: string
                  description: >-
                    The income account used to track revenue from sales of this
                    inventory assembly item.
                  example: 80000001-1234567890
                updateExistingTransactionsIncomeAccount:
                  type: boolean
                  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
                purchaseDescription:
                  type: string
                  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:
                  type: string
                  description: >-
                    The cost at which this inventory assembly item is purchased
                    from vendors, represented as a decimal string.
                  example: '15.75'
                purchaseTaxCodeId:
                  type: string
                  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
                cogsAccountId:
                  type: string
                  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
                preferredVendorId:
                  type: string
                  description: >-
                    The preferred vendor from whom this inventory assembly item
                    is typically purchased.
                  example: 80000001-1234567890
                assetAccountId:
                  type: string
                  description: >-
                    The asset account used to track the current value of this
                    inventory assembly item in inventory.
                  example: 80000001-1234567890
                buildNotificationThreshold:
                  type: number
                  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:
                  type: number
                  description: >-
                    The maximum quantity of this inventory assembly item desired
                    in inventory.
                  example: 200
                clearItemLines:
                  type: boolean
                  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
                lines:
                  type: array
                  items:
                    type: object
                    properties:
                      inventoryItemId:
                        type: string
                        description: >-
                          The inventory item associated with this inventory
                          assembly item line.
                        example: 80000001-1234567890
                      quantity:
                        type: number
                        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
                    additionalProperties: false
                  minItems: 1
                  description: The inventory assembly item's lines.
              required:
                - revisionNumber
              additionalProperties: false
      responses:
        '200':
          description: Returns the updated inventory assembly item.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: query
          name: ids
          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.
          schema:
            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.
            example:
              - 80000001-1234567890
        - in: query
          name: fullNames
          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.
          schema:
            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.
            example:
              - Kitchen:Cabinet
        - in: query
          name: limit
          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.
          schema:
            type: integer
            minimum: 1
            maximum: 150
            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
        - in: query
          name: cursor
          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.
          schema:
            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.
            example: 12345678-abcd-abcd-example-1234567890ab
        - in: query
          name: status
          description: Filter for inventory items that are active, inactive, or both.
          schema:
            type: string
            enum:
              - active
              - all
              - inactive
            default: active
            description: Filter for inventory items that are active, inactive, or both.
            example: active
        - in: query
          name: updatedAfter
          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.
          schema:
            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.
            example: 2025-01-01T12:34:56.000Z
        - in: query
          name: updatedBefore
          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.
          schema:
            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.
            example: 2025-02-01T12:34:56.000Z
        - in: query
          name: nameContains
          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`.
          schema:
            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`.
            example: ABC
        - in: query
          name: nameStartsWith
          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`.
          schema:
            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`.
            example: ABC
        - in: query
          name: nameEndsWith
          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`.
          schema:
            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`.
            example: ABC
        - in: query
          name: nameFrom
          description: >-
            Filter for inventory items whose `name` is alphabetically greater
            than or equal to this value.
          schema:
            type: string
            description: >-
              Filter for inventory items whose `name` is alphabetically greater
              than or equal to this value.
            example: A
        - in: query
          name: nameTo
          description: >-
            Filter for inventory items whose `name` is alphabetically less than
            or equal to this value.
          schema:
            type: string
            description: >-
              Filter for inventory items whose `name` is alphabetically less
              than or equal to this value.
            example: Z
        - in: query
          name: classIds
          description: >-
            Filter for inventory items of these classes. A class is a way
            end-users can categorize inventory items in QuickBooks.
          schema:
            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.
            example:
              - 80000001-1234567890
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns a list of inventory items.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          content:
            application/json:
              schema:
                type: object
                properties:
                  objectType:
                    type: string
                    const: list
                    description: The type of object. This value is always `"list"`.
                    example: 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:
                    type:
                      - string
                      - '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:
                    type:
                      - number
                      - '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
          description: The ID of the End-User to receive this request.
          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
      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:
                  type: object
                  properties:
                    value:
                      type: string
                      description: The item's barcode value.
                      example: '012345678905'
                    assignEvenIfUsed:
                      type: boolean
                      description: >-
                        Indicates whether to assign the barcode even if it is
                        already used.
                      example: false
                      default: false
                    allowOverride:
                      type: boolean
                      description: Indicates whether to allow the barcode to be overridden.
                      example: false
                      default: false
                  additionalProperties: false
                  description: The inventory item's barcode.
                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
                  default: true
                classId:
                  type: string
                  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
                parentId:
                  type: string
                  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
                sku:
                  type: string
                  description: >-
                    The inventory item's stock keeping unit (SKU), which is
                    sometimes the manufacturer's part number.
                  example: MPN-123456
                unitOfMeasureSetId:
                  type: string
                  description: >-
                    The unit-of-measure set associated with this inventory item,
                    which consists of a base unit and related units.
                  example: 80000001-1234567890
                salesTaxCodeId:
                  type: string
                  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. If QuickBooks is not set up to charge sales tax
                    (via the "Do You Charge Sales Tax?" preference), it will
                    assign the default non-taxable code to all sales.
                  example: 80000001-1234567890
                salesDescription:
                  type: string
                  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:
                  type: string
                  description: >-
                    The price at which this inventory item is sold to customers,
                    represented as a decimal string.
                  example: '19.99'
                incomeAccountId:
                  type: string
                  description: >-
                    The income account used to track revenue from sales of this
                    inventory item.
                  example: 80000001-1234567890
                purchaseDescription:
                  type: string
                  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:
                  type: string
                  description: >-
                    The cost at which this inventory item is purchased from
                    vendors, represented as a decimal string.
                  example: '15.75'
                purchaseTaxCodeId:
                  type: string
                  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
                cogsAccountId:
                  type: string
                  description: >-
                    The Cost of Goods Sold (COGS) account for this inventory
                    item, tracking the original direct costs of producing goods
                    sold.
                  example: 80000001-1234567890
                preferredVendorId:
                  type: string
                  description: >-
                    The preferred vendor from whom this inventory item is
                    typically purchased.
                  example: 80000001-1234567890
                assetAccountId:
                  type: string
                  description: >-
                    The asset account used to track the current value of this
                    inventory item in inventory.
                  example: 80000001-1234567890
                reorderPoint:
                  type: number
                  description: >-
                    The minimum quantity of this inventory item at which
                    QuickBooks prompts for reordering.
                  example: 50
                maximumQuantityOnHand:
                  type: number
                  description: >-
                    The maximum quantity of this inventory item desired in
                    inventory.
                  example: 200
                quantityOnHand:
                  type: number
                  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
                totalValue:
                  type: string
                  description: >-
                    The total value of this inventory item. 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.
                  example: '1500.00'
                inventoryDate:
                  type: string
                  format: date
                  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'
                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:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the inventory item to
            retrieve.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the inventory item to
              retrieve.
            example: 80000001-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns the specified inventory item.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the inventory item to
            update.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the inventory item to
              update.
            example: 80000001-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      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:
                  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:
                  type: object
                  properties:
                    value:
                      type: string
                      description: The item's barcode value.
                      example: '012345678905'
                    assignEvenIfUsed:
                      type: boolean
                      description: >-
                        Indicates whether to assign the barcode even if it is
                        already used.
                      example: false
                      default: false
                    allowOverride:
                      type: boolean
                      description: Indicates whether to allow the barcode to be overridden.
                      example: false
                      default: false
                  additionalProperties: false
                  description: The inventory item's barcode.
                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
                classId:
                  type: string
                  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
                parentId:
                  type: string
                  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
                sku:
                  type: string
                  description: >-
                    The inventory item's stock keeping unit (SKU), which is
                    sometimes the manufacturer's part number.
                  example: MPN-123456
                unitOfMeasureSetId:
                  type: string
                  description: >-
                    The unit-of-measure set associated with this inventory item,
                    which consists of a base unit and related units.
                  example: 80000001-1234567890
                forceUnitOfMeasureChange:
                  type: boolean
                  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
                salesTaxCodeId:
                  type: string
                  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. If QuickBooks is not set up to charge sales tax
                    (via the "Do You Charge Sales Tax?" preference), it will
                    assign the default non-taxable code to all sales.
                  example: 80000001-1234567890
                salesDescription:
                  type: string
                  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:
                  type: string
                  description: >-
                    The price at which this inventory item is sold to customers,
                    represented as a decimal string.
                  example: '19.99'
                incomeAccountId:
                  type: string
                  description: >-
                    The income account used to track revenue from sales of this
                    inventory item.
                  example: 80000001-1234567890
                updateExistingTransactionsIncomeAccount:
                  type: boolean
                  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
                purchaseDescription:
                  type: string
                  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:
                  type: string
                  description: >-
                    The cost at which this inventory item is purchased from
                    vendors, represented as a decimal string.
                  example: '15.75'
                purchaseTaxCodeId:
                  type: string
                  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
                cogsAccountId:
                  type: string
                  description: >-
                    The Cost of Goods Sold (COGS) account for this inventory
                    item, tracking the original direct costs of producing goods
                    sold.
                  example: 80000001-1234567890
                updateExistingTransactionsCogsAccount:
                  type: boolean
                  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
                preferredVendorId:
                  type: string
                  description: >-
                    The preferred vendor from whom this inventory item is
                    typically purchased.
                  example: 80000001-1234567890
                assetAccountId:
                  type: string
                  description: >-
                    The asset account used to track the current value of this
                    inventory item in inventory.
                  example: 80000001-1234567890
                reorderPoint:
                  type: number
                  description: >-
                    The minimum quantity of this inventory item at which
                    QuickBooks prompts for reordering.
                  example: 50
                maximumQuantityOnHand:
                  type: number
                  description: >-
                    The maximum quantity of this inventory item desired in
                    inventory.
                  example: 200
              required:
                - revisionNumber
              additionalProperties: false
      responses:
        '200':
          description: Returns the updated inventory item.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: query
          name: ids
          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.
          schema:
            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.
            example:
              - 80000001-1234567890
        - in: query
          name: names
          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.
          schema:
            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.
            example:
              - Stockroom
        - in: query
          name: status
          description: Filter for inventory sites that are active, inactive, or both.
          schema:
            type: string
            enum:
              - active
              - all
              - inactive
            default: active
            description: Filter for inventory sites that are active, inactive, or both.
            example: active
        - in: query
          name: updatedAfter
          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.
          schema:
            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.
            example: 2025-01-01T12:34:56.000Z
        - in: query
          name: updatedBefore
          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.
          schema:
            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.
            example: 2025-02-01T12:34:56.000Z
        - in: query
          name: nameContains
          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`.
          schema:
            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`.
            example: ABC
        - in: query
          name: nameStartsWith
          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`.
          schema:
            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`.
            example: ABC
        - in: query
          name: nameEndsWith
          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`.
          schema:
            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`.
            example: ABC
        - in: query
          name: nameFrom
          description: >-
            Filter for inventory sites whose `name` is alphabetically greater
            than or equal to this value.
          schema:
            type: string
            description: >-
              Filter for inventory sites whose `name` is alphabetically greater
              than or equal to this value.
            example: A
        - in: query
          name: nameTo
          description: >-
            Filter for inventory sites whose `name` is alphabetically less than
            or equal to this value.
          schema:
            type: string
            description: >-
              Filter for inventory sites whose `name` is alphabetically less
              than or equal to this value.
            example: Z
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns a list of inventory sites.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          content:
            application/json:
              schema:
                type: object
                properties:
                  objectType:
                    type: string
                    const: list
                    description: The type of object. This value is always `"list"`.
                    example: 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
          description: The ID of the End-User to receive this request.
          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
      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:
                  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
                  default: true
                parentId:
                  type: string
                  description: >-
                    The parent inventory site one level above this one in the
                    hierarchy.
                  example: 80000001-1234567890
                description:
                  type: string
                  description: A description of this inventory site.
                  example: Main Stockroom for Electronics
                email:
                  type: string
                  description: The inventory site's email address.
                  example: inventory-site@example.com
                address:
                  type: object
                  properties:
                    line1:
                      type: string
                      maxLength: 41
                      description: >-
                        The first line of the site address (e.g., street, PO
                        Box, or company name).


                        Maximum length: 41 characters.
                      example: Conductor Labs Inc.
                    line2:
                      type: string
                      maxLength: 41
                      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.
                    line3:
                      type: string
                      maxLength: 41
                      description: |-
                        The third line of the site address, if needed.

                        Maximum length: 41 characters.
                      example: Suite 100
                    line4:
                      type: string
                      maxLength: 41
                      description: |-
                        The fourth line of the site address, if needed.

                        Maximum length: 41 characters.
                      example: ''
                    line5:
                      type: string
                      maxLength: 41
                      description: |-
                        The fifth line of the site address, if needed.

                        Maximum length: 41 characters.
                      example: ''
                    city:
                      type: string
                      maxLength: 31
                      description: >-
                        The city, district, suburb, town, or village name of the
                        site address.


                        Maximum length: 31 characters.
                      example: San Francisco
                    state:
                      type: string
                      maxLength: 21
                      description: >-
                        The state, county, province, or region name of the site
                        address.


                        Maximum length: 21 characters.
                      example: CA
                    postalCode:
                      type: string
                      maxLength: 13
                      description: |-
                        The postal code or ZIP code of the site address.

                        Maximum length: 13 characters.
                      example: '94110'
                    country:
                      type: string
                      description: The country name of the site address.
                      example: United States
                  additionalProperties: false
                  description: The inventory site's address.
              required:
                - name
              additionalProperties: false
      responses:
        '200':
          description: Returns the newly created inventory site.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the inventory site to
            retrieve.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the inventory site to
              retrieve.
            example: 80000001-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns the specified inventory site.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the inventory site to
            update.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the inventory site to
              update.
            example: 80000001-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      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:
                  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:
                  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
                parentId:
                  type: string
                  description: >-
                    The parent inventory site one level above this one in the
                    hierarchy.
                  example: 80000001-1234567890
                description:
                  type: string
                  description: A description of this inventory site.
                  example: Main Stockroom for Electronics
                contact:
                  type: string
                  description: >-
                    The name of the primary contact person for this inventory
                    site.
                  example: Jane Smith
                phone:
                  type: string
                  description: The inventory site's primary telephone number.
                  example: +1-555-123-4567
                fax:
                  type: string
                  description: The inventory site's fax number.
                  example: +1-555-555-1212
                email:
                  type: string
                  description: The inventory site's email address.
                  example: inventory-site@example.com
                address:
                  type: object
                  properties:
                    line1:
                      type: string
                      maxLength: 41
                      description: >-
                        The first line of the site address (e.g., street, PO
                        Box, or company name).


                        Maximum length: 41 characters.
                      example: Conductor Labs Inc.
                    line2:
                      type: string
                      maxLength: 41
                      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.
                    line3:
                      type: string
                      maxLength: 41
                      description: |-
                        The third line of the site address, if needed.

                        Maximum length: 41 characters.
                      example: Suite 100
                    line4:
                      type: string
                      maxLength: 41
                      description: |-
                        The fourth line of the site address, if needed.

                        Maximum length: 41 characters.
                      example: ''
                    line5:
                      type: string
                      maxLength: 41
                      description: |-
                        The fifth line of the site address, if needed.

                        Maximum length: 41 characters.
                      example: ''
                    city:
                      type: string
                      maxLength: 31
                      description: >-
                        The city, district, suburb, town, or village name of the
                        site address.


                        Maximum length: 31 characters.
                      example: San Francisco
                    state:
                      type: string
                      maxLength: 21
                      description: >-
                        The state, county, province, or region name of the site
                        address.


                        Maximum length: 21 characters.
                      example: CA
                    postalCode:
                      type: string
                      maxLength: 13
                      description: |-
                        The postal code or ZIP code of the site address.

                        Maximum length: 13 characters.
                      example: '94110'
                    country:
                      type: string
                      description: The country name of the site address.
                      example: United States
                  additionalProperties: false
                  description: The inventory site's address.
              required:
                - revisionNumber
              additionalProperties: false
      responses:
        '200':
          description: Returns the updated inventory site.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: query
          name: ids
          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.
          schema:
            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.
            example:
              - 123ABC-1234567890
        - in: query
          name: refNumbers
          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.
          schema:
            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.
            example:
              - INVOICE-1234
        - in: query
          name: limit
          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.
          schema:
            type: integer
            minimum: 1
            maximum: 150
            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
        - in: query
          name: cursor
          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.
          schema:
            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.
            example: 12345678-abcd-abcd-example-1234567890ab
        - in: query
          name: updatedAfter
          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.
          schema:
            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.
            example: 2025-01-01T12:34:56.000Z
        - in: query
          name: updatedBefore
          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.
          schema:
            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.
            example: 2025-02-01T12:34:56.000Z
        - in: query
          name: transactionDateFrom
          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`).
          schema:
            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`).
            example: '2025-01-01'
        - in: query
          name: transactionDateTo
          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`).
          schema:
            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`).
            example: '2025-02-01'
        - in: query
          name: customerIds
          description: Filter for invoices created for these customers.
          schema:
            type: array
            items:
              type: string
            description: Filter for invoices created for these customers.
            example:
              - 80000001-1234567890
        - in: query
          name: accountIds
          description: Filter for invoices associated with these accounts.
          schema:
            type: array
            items:
              type: string
            description: Filter for invoices associated with these accounts.
            example:
              - 80000001-1234567890
        - in: query
          name: refNumberContains
          description: >-
            Filter for invoices whose `refNumber` contains this substring.


            **NOTE**: If you use this parameter, you cannot also use
            `refNumberStartsWith` or `refNumberEndsWith`.
          schema:
            type: string
            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
        - in: query
          name: refNumberStartsWith
          description: >-
            Filter for invoices whose `refNumber` starts with this substring.


            **NOTE**: If you use this parameter, you cannot also use
            `refNumberContains` or `refNumberEndsWith`.
          schema:
            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`.
            example: INV
        - in: query
          name: refNumberEndsWith
          description: >-
            Filter for invoices whose `refNumber` ends with this substring.


            **NOTE**: If you use this parameter, you cannot also use
            `refNumberContains` or `refNumberStartsWith`.
          schema:
            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`.
            example: '1234'
        - in: query
          name: refNumberFrom
          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.
          schema:
            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.
            example: INV-0001
        - in: query
          name: refNumberTo
          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.
          schema:
            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.
            example: INV-9999
        - in: query
          name: currencyIds
          description: Filter for invoices in these currencies.
          schema:
            type: array
            items:
              type: string
            description: Filter for invoices in these currencies.
            example:
              - 80000001-1234567890
        - in: query
          name: paymentStatus
          description: Filter for invoices that are paid, not paid, or both.
          schema:
            type: string
            enum:
              - all
              - paid
              - not_paid
            default: all
            description: Filter for invoices that are paid, not paid, or both.
            example: paid
        - in: query
          name: includeLineItems
          description: Whether to include line items in the response. Defaults to `true`.
          schema:
            type: boolean
            description: Whether to include line items in the response. Defaults to `true`.
            example: true
            default: true
        - in: query
          name: includeLinkedTransactions
          description: >-
            Whether to include linked transactions in the response. Defaults to
            `false`. For example, a payment linked to the corresponding invoice.
          schema:
            type: boolean
            description: >-
              Whether to include linked transactions in the response. Defaults
              to `false`. For example, a payment linked to the corresponding
              invoice.
            example: false
            default: false
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns a list of invoices.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          content:
            application/json:
              schema:
                type: object
                properties:
                  objectType:
                    type: string
                    const: list
                    description: The type of object. This value is always `"list"`.
                    example: 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:
                    type:
                      - string
                      - '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:
                    type:
                      - number
                      - '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
          description: The ID of the End-User to receive this request.
          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
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                customerId:
                  type: string
                  description: The customer or customer-job associated with this invoice.
                  example: 80000001-1234567890
                classId:
                  type: string
                  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
                receivablesAccountId:
                  type: string
                  description: >-
                    The Accounts-Receivable (A/R) account to which this invoice
                    is assigned, used to track the amount owed. If not
                    specified, QuickBooks Desktop will use its default A/R
                    account.


                    **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
                documentTemplateId:
                  type: string
                  description: >-
                    The predefined template in QuickBooks that determines the
                    layout and formatting for this invoice when printed or
                    displayed.
                  example: 80000001-1234567890
                transactionDate:
                  type: string
                  format: date
                  description: The date of this invoice, in ISO 8601 format (YYYY-MM-DD).
                  example: '2024-10-01'
                refNumber:
                  type: string
                  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).
                  example: INV-1234
                billingAddress:
                  type: object
                  properties:
                    line1:
                      type: string
                      maxLength: 41
                      description: >-
                        The first line of the address (e.g., street, PO Box, or
                        company name).


                        Maximum length: 41 characters.
                      example: Conductor Labs Inc.
                    line2:
                      type: string
                      maxLength: 41
                      description: >-
                        The second line of the address, if needed (e.g.,
                        apartment, suite, unit, or building).


                        Maximum length: 41 characters.
                      example: 540 Market St.
                    line3:
                      type: string
                      maxLength: 41
                      description: |-
                        The third line of the address, if needed.

                        Maximum length: 41 characters.
                      example: Suite 100
                    line4:
                      type: string
                      maxLength: 41
                      description: |-
                        The fourth line of the address, if needed.

                        Maximum length: 41 characters.
                      example: ''
                    line5:
                      type: string
                      maxLength: 41
                      description: |-
                        The fifth line of the address, if needed.

                        Maximum length: 41 characters.
                      example: ''
                    city:
                      type: string
                      maxLength: 31
                      description: >-
                        The city, district, suburb, town, or village name of the
                        address.


                        Maximum length: 31 characters.
                      example: San Francisco
                    state:
                      type: string
                      maxLength: 21
                      description: >-
                        The state, county, province, or region name of the
                        address.


                        Maximum length: 21 characters.
                      example: CA
                    postalCode:
                      type: string
                      maxLength: 13
                      description: |-
                        The postal code or ZIP code of the address.

                        Maximum length: 13 characters.
                      example: '94110'
                    country:
                      type: string
                      description: The country name of the address.
                      example: United States
                    note:
                      type: string
                      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
                  additionalProperties: false
                  description: The invoice's billing address.
                shippingAddress:
                  type: object
                  properties:
                    line1:
                      type: string
                      maxLength: 41
                      description: >-
                        The first line of the address (e.g., street, PO Box, or
                        company name).


                        Maximum length: 41 characters.
                      example: Conductor Labs Inc.
                    line2:
                      type: string
                      maxLength: 41
                      description: >-
                        The second line of the address, if needed (e.g.,
                        apartment, suite, unit, or building).


                        Maximum length: 41 characters.
                      example: 540 Market St.
                    line3:
                      type: string
                      maxLength: 41
                      description: |-
                        The third line of the address, if needed.

                        Maximum length: 41 characters.
                      example: Suite 100
                    line4:
                      type: string
                      maxLength: 41
                      description: |-
                        The fourth line of the address, if needed.

                        Maximum length: 41 characters.
                      example: ''
                    line5:
                      type: string
                      maxLength: 41
                      description: |-
                        The fifth line of the address, if needed.

                        Maximum length: 41 characters.
                      example: ''
                    city:
                      type: string
                      maxLength: 31
                      description: >-
                        The city, district, suburb, town, or village name of the
                        address.


                        Maximum length: 31 characters.
                      example: San Francisco
                    state:
                      type: string
                      maxLength: 21
                      description: >-
                        The state, county, province, or region name of the
                        address.


                        Maximum length: 21 characters.
                      example: CA
                    postalCode:
                      type: string
                      maxLength: 13
                      description: |-
                        The postal code or ZIP code of the address.

                        Maximum length: 13 characters.
                      example: '94110'
                    country:
                      type: string
                      description: The country name of the address.
                      example: United States
                    note:
                      type: string
                      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
                  additionalProperties: false
                  description: The invoice's shipping address.
                isPending:
                  type: boolean
                  description: >-
                    Indicates whether this invoice has not been completed or is
                    in a draft version.
                  example: false
                isFinanceCharge:
                  type: boolean
                  description: >-
                    Whether this invoice includes a finance charge. This field
                    is immutable and can only be set during invoice creation.
                  example: true
                purchaseOrderNumber:
                  type: string
                  maxLength: 25
                  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
                termsId:
                  type: string
                  description: >-
                    The invoice's payment terms, defining when payment is due
                    and any applicable discounts.
                  example: 80000001-1234567890
                dueDate:
                  type: string
                  format: date
                  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'
                salesRepresentativeId:
                  type: string
                  description: >-
                    The invoice's sales representative. Sales representatives
                    can be employees, vendors, or other names in QuickBooks.
                  example: 80000001-1234567890
                shipmentOrigin:
                  type: string
                  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:
                  type: string
                  format: date
                  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'
                shippingMethodId:
                  type: string
                  description: >-
                    The shipping method used for this invoice, such as standard
                    mail or overnight delivery.
                  example: 80000001-1234567890
                salesTaxItemId:
                  type: string
                  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
                memo:
                  type: string
                  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
                customerMessageId:
                  type: string
                  description: The message to display to the customer on the invoice.
                  example: 80000001-1234567890
                isQueuedForPrint:
                  type: boolean
                  description: >-
                    Indicates whether this invoice is included in the queue of
                    documents for QuickBooks to print.
                  example: true
                isQueuedForEmail:
                  type: boolean
                  description: >-
                    Indicates whether this invoice is included in the queue of
                    documents for QuickBooks to email to the customer.
                  example: true
                salesTaxCodeId:
                  type: string
                  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. If QuickBooks is not set up to charge sales tax
                    (via the "Do You Charge Sales Tax?" preference), it will
                    assign the default non-taxable code to all sales.
                  example: 80000001-1234567890
                otherCustomField:
                  type: string
                  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
                exchangeRate:
                  type: number
                  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
                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:
                  type: array
                  items:
                    type: string
                  minItems: 1
                  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.
                applyCredits:
                  type: array
                  items:
                    type: object
                    properties:
                      creditTransactionId:
                        type: string
                        description: >-
                          The unique identifier of the credit transaction
                          (credit memo or vendor credit) to apply to this
                          transaction.
                        example: ABCDEF-1234567890
                      appliedAmount:
                        type: string
                        description: >-
                          The amount of credit applied to this transaction. This
                          could include customer deposits, payments, or credits.
                          Represented as a decimal string.
                        example: '100.00'
                      overrideCreditApplication:
                        type: boolean
                        description: Indicates whether to override the credit.
                        example: false
                        default: false
                    required:
                      - creditTransactionId
                      - appliedAmount
                    additionalProperties: false
                  minItems: 1
                  description: >-
                    Credit memos to apply to this invoice, reducing its balance.
                    This creates a link between this invoice and the specified
                    credit memos.


                    **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.
                lines:
                  type: array
                  items:
                    type: object
                    properties:
                      itemId:
                        type: string
                        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
                      description:
                        type: string
                        description: A description of this invoice line.
                        example: High-quality widget with custom engraving
                      quantity:
                        type: number
                        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:
                        type: string
                        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
                      rate:
                        type: string
                        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:
                        type: string
                        description: >-
                          The price of this invoice line expressed as a
                          percentage. Typically used for discount or markup
                          items.
                        example: '10.5'
                      priceLevelId:
                        type: string
                        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
                      classId:
                        type: string
                        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
                      amount:
                        type: string
                        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'
                      priceRuleConflictStrategy:
                        type: string
                        enum:
                          - base_price
                          - zero
                        description: >-
                          Specifies how to resolve price rule conflicts when
                          adding or modifying this invoice line.
                        example: base_price
                      inventorySiteId:
                        type: string
                        description: >-
                          The site location where inventory for the item
                          associated with this invoice line is stored.
                        example: 80000001-1234567890
                      inventorySiteLocationId:
                        type: string
                        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
                      serialNumber:
                        type: string
                        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:
                        type: string
                        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
                      serviceDate:
                        type: string
                        format: date
                        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'
                      salesTaxCodeId:
                        type: string
                        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. If QuickBooks is not set up to charge
                          sales tax (via the "Do You Charge Sales Tax?"
                          preference), it will assign the default non-taxable
                          code to all sales.
                        example: 80000001-1234567890
                      overrideItemAccountId:
                        type: string
                        description: >-
                          The account to use for this invoice line, overriding
                          the default account associated with the item.
                        example: 80000001-1234567890
                      otherCustomField1:
                        type: string
                        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:
                        type: string
                        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
                      linkToTransactionLine:
                        type: object
                        properties:
                          transactionId:
                            type: string
                            description: >-
                              The ID of the transaction to which to link this
                              transaction.
                            example: 123ABC-1234567890
                          transactionLineId:
                            type: string
                            description: >-
                              The ID of the transaction line to which to link
                              this transaction.
                            example: 456DEF-1234567890
                        required:
                          - transactionId
                          - transactionLineId
                        additionalProperties: false
                        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.
                      customFields:
                        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
                        minItems: 1
                        description: >-
                          The custom fields for the invoice line object, added
                          as user-defined data extensions, not included in the
                          standard QuickBooks object.
                    additionalProperties: false
                  minItems: 1
                  description: >-
                    The invoice's line items, each representing a single product
                    or service sold.
                lineGroups:
                  type: array
                  items:
                    type: object
                    properties:
                      itemGroupId:
                        type: string
                        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
                      quantity:
                        type: number
                        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:
                        type: string
                        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
                      inventorySiteId:
                        type: string
                        description: >-
                          The site location where inventory for the item group
                          associated with this invoice line group is stored.
                        example: 80000001-1234567890
                      inventorySiteLocationId:
                        type: string
                        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
                      customFields:
                        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
                        minItems: 1
                        description: >-
                          The custom fields for the invoice line group object,
                          added as user-defined data extensions, not included in
                          the standard QuickBooks object.
                    required:
                      - itemGroupId
                    additionalProperties: false
                  minItems: 1
                  description: >-
                    The invoice's line item groups, each representing a
                    predefined set of related items.
              required:
                - customerId
                - transactionDate
              additionalProperties: false
      responses:
        '200':
          description: Returns the newly created invoice.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the invoice to
            retrieve.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the invoice to
              retrieve.
            example: 123ABC-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns the specified invoice.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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.
      security:
        - BearerAuth: []
      parameters:
        - in: path
          name: id
          description: The QuickBooks-assigned unique identifier of the invoice to update.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the invoice to
              update.
            example: 123ABC-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      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:
                  type: string
                  description: The customer or customer-job associated with this invoice.
                  example: 80000001-1234567890
                classId:
                  type: string
                  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
                receivablesAccountId:
                  type: string
                  description: >-
                    The Accounts-Receivable (A/R) account to which this invoice
                    is assigned, used to track the amount owed. If not
                    specified, QuickBooks Desktop will use its default A/R
                    account.


                    **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
                documentTemplateId:
                  type: string
                  description: >-
                    The predefined template in QuickBooks that determines the
                    layout and formatting for this invoice when printed or
                    displayed.
                  example: 80000001-1234567890
                transactionDate:
                  type: string
                  format: date
                  description: The date of this invoice, in ISO 8601 format (YYYY-MM-DD).
                  example: '2024-10-01'
                refNumber:
                  type: string
                  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:
                  type: object
                  properties:
                    line1:
                      type: string
                      maxLength: 41
                      description: >-
                        The first line of the address (e.g., street, PO Box, or
                        company name).


                        Maximum length: 41 characters.
                      example: Conductor Labs Inc.
                    line2:
                      type: string
                      maxLength: 41
                      description: >-
                        The second line of the address, if needed (e.g.,
                        apartment, suite, unit, or building).


                        Maximum length: 41 characters.
                      example: 540 Market St.
                    line3:
                      type: string
                      maxLength: 41
                      description: |-
                        The third line of the address, if needed.

                        Maximum length: 41 characters.
                      example: Suite 100
                    line4:
                      type: string
                      maxLength: 41
                      description: |-
                        The fourth line of the address, if needed.

                        Maximum length: 41 characters.
                      example: ''
                    line5:
                      type: string
                      maxLength: 41
                      description: |-
                        The fifth line of the address, if needed.

                        Maximum length: 41 characters.
                      example: ''
                    city:
                      type: string
                      maxLength: 31
                      description: >-
                        The city, district, suburb, town, or village name of the
                        address.


                        Maximum length: 31 characters.
                      example: San Francisco
                    state:
                      type: string
                      maxLength: 21
                      description: >-
                        The state, county, province, or region name of the
                        address.


                        Maximum length: 21 characters.
                      example: CA
                    postalCode:
                      type: string
                      maxLength: 13
                      description: |-
                        The postal code or ZIP code of the address.

                        Maximum length: 13 characters.
                      example: '94110'
                    country:
                      type: string
                      description: The country name of the address.
                      example: United States
                    note:
                      type: string
                      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
                  additionalProperties: false
                  description: The invoice's billing address.
                shippingAddress:
                  type: object
                  properties:
                    line1:
                      type: string
                      maxLength: 41
                      description: >-
                        The first line of the address (e.g., street, PO Box, or
                        company name).


                        Maximum length: 41 characters.
                      example: Conductor Labs Inc.
                    line2:
                      type: string
                      maxLength: 41
                      description: >-
                        The second line of the address, if needed (e.g.,
                        apartment, suite, unit, or building).


                        Maximum length: 41 characters.
                      example: 540 Market St.
                    line3:
                      type: string
                      maxLength: 41
                      description: |-
                        The third line of the address, if needed.

                        Maximum length: 41 characters.
                      example: Suite 100
                    line4:
                      type: string
                      maxLength: 41
                      description: |-
                        The fourth line of the address, if needed.

                        Maximum length: 41 characters.
                      example: ''
                    line5:
                      type: string
                      maxLength: 41
                      description: |-
                        The fifth line of the address, if needed.

                        Maximum length: 41 characters.
                      example: ''
                    city:
                      type: string
                      maxLength: 31
                      description: >-
                        The city, district, suburb, town, or village name of the
                        address.


                        Maximum length: 31 characters.
                      example: San Francisco
                    state:
                      type: string
                      maxLength: 21
                      description: >-
                        The state, county, province, or region name of the
                        address.


                        Maximum length: 21 characters.
                      example: CA
                    postalCode:
                      type: string
                      maxLength: 13
                      description: |-
                        The postal code or ZIP code of the address.

                        Maximum length: 13 characters.
                      example: '94110'
                    country:
                      type: string
                      description: The country name of the address.
                      example: United States
                    note:
                      type: string
                      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
                  additionalProperties: false
                  description: The invoice's shipping address.
                isPending:
                  type: boolean
                  description: >-
                    Indicates whether this invoice has not been completed or is
                    in a draft version.
                  example: false
                purchaseOrderNumber:
                  type: string
                  maxLength: 25
                  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
                termsId:
                  type: string
                  description: >-
                    The invoice's payment terms, defining when payment is due
                    and any applicable discounts.
                  example: 80000001-1234567890
                dueDate:
                  type: string
                  format: date
                  description: >-
                    The date by which this invoice must be paid, in ISO 8601
                    format (YYYY-MM-DD).
                  example: '2024-10-31'
                salesRepresentativeId:
                  type: string
                  description: >-
                    The invoice's sales representative. Sales representatives
                    can be employees, vendors, or other names in QuickBooks.
                  example: 80000001-1234567890
                shipmentOrigin:
                  type: string
                  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:
                  type: string
                  format: date
                  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'
                shippingMethodId:
                  type: string
                  description: >-
                    The shipping method used for this invoice, such as standard
                    mail or overnight delivery.
                  example: 80000001-1234567890
                salesTaxItemId:
                  type: string
                  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
                memo:
                  type: string
                  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
                customerMessageId:
                  type: string
                  description: The message to display to the customer on the invoice.
                  example: 80000001-1234567890
                isQueuedForPrint:
                  type: boolean
                  description: >-
                    Indicates whether this invoice is included in the queue of
                    documents for QuickBooks to print.
                  example: true
                isQueuedForEmail:
                  type: boolean
                  description: >-
                    Indicates whether this invoice is included in the queue of
                    documents for QuickBooks to email to the customer.
                  example: true
                salesTaxCodeId:
                  type: string
                  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. If QuickBooks is not set up to charge sales tax
                    (via the "Do You Charge Sales Tax?" preference), it will
                    assign the default non-taxable code to all sales.
                  example: 80000001-1234567890
                otherCustomField:
                  type: string
                  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
                exchangeRate:
                  type: number
                  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
                applyCredits:
                  type: array
                  items:
                    type: object
                    properties:
                      creditTransactionId:
                        type: string
                        description: >-
                          The unique identifier of the credit transaction
                          (credit memo or vendor credit) to apply to this
                          transaction.
                        example: ABCDEF-1234567890
                      appliedAmount:
                        type: string
                        description: >-
                          The amount of credit applied to this transaction. This
                          could include customer deposits, payments, or credits.
                          Represented as a decimal string.
                        example: '100.00'
                      overrideCreditApplication:
                        type: boolean
                        description: Indicates whether to override the credit.
                        example: false
                        default: false
                    required:
                      - creditTransactionId
                      - appliedAmount
                    additionalProperties: false
                  minItems: 1
                  description: >-
                    Credit memos to apply to this invoice, reducing its balance.
                    This creates a link between this invoice and the specified
                    credit memos.


                    **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.
                lines:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                        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:
                        type: string
                        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
                      description:
                        type: string
                        description: A description of this invoice line.
                        example: High-quality widget with custom engraving
                      quantity:
                        type: number
                        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:
                        type: string
                        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
                      overrideUnitOfMeasureSetId:
                        type: string
                        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
                      rate:
                        type: string
                        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:
                        type: string
                        description: >-
                          The price of this invoice line expressed as a
                          percentage. Typically used for discount or markup
                          items.
                        example: '10.5'
                      priceLevelId:
                        type: string
                        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
                      classId:
                        type: string
                        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
                      amount:
                        type: string
                        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'
                      priceRuleConflictStrategy:
                        type: string
                        enum:
                          - base_price
                          - zero
                        description: >-
                          Specifies how to resolve price rule conflicts when
                          adding or modifying this invoice line.
                        example: base_price
                      inventorySiteId:
                        type: string
                        description: >-
                          The site location where inventory for the item
                          associated with this invoice line is stored.
                        example: 80000001-1234567890
                      inventorySiteLocationId:
                        type: string
                        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
                      serialNumber:
                        type: string
                        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:
                        type: string
                        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
                      serviceDate:
                        type: string
                        format: date
                        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'
                      salesTaxCodeId:
                        type: string
                        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. If QuickBooks is not set up to charge
                          sales tax (via the "Do You Charge Sales Tax?"
                          preference), it will assign the default non-taxable
                          code to all sales.
                        example: 80000001-1234567890
                      overrideItemAccountId:
                        type: string
                        description: >-
                          The account to use for this invoice line, overriding
                          the default account associated with the item.
                        example: 80000001-1234567890
                      otherCustomField1:
                        type: string
                        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:
                        type: string
                        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
                    required:
                      - id
                    additionalProperties: false
                  minItems: 1
                  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.
                lineGroups:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                        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:
                        type: string
                        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
                      quantity:
                        type: number
                        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:
                        type: string
                        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
                      overrideUnitOfMeasureSetId:
                        type: string
                        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
                      lines:
                        type: array
                        items:
                          type: object
                          properties:
                            id:
                              type: string
                              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:
                              type: string
                              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
                            description:
                              type: string
                              description: A description of this invoice line.
                              example: High-quality widget with custom engraving
                            quantity:
                              type: number
                              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:
                              type: string
                              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
                            overrideUnitOfMeasureSetId:
                              type: string
                              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
                            rate:
                              type: string
                              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:
                              type: string
                              description: >-
                                The price of this invoice line expressed as a
                                percentage. Typically used for discount or
                                markup items.
                              example: '10.5'
                            priceLevelId:
                              type: string
                              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
                            classId:
                              type: string
                              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
                            amount:
                              type: string
                              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'
                            priceRuleConflictStrategy:
                              type: string
                              enum:
                                - base_price
                                - zero
                              description: >-
                                Specifies how to resolve price rule conflicts
                                when adding or modifying this invoice line.
                              example: base_price
                            inventorySiteId:
                              type: string
                              description: >-
                                The site location where inventory for the item
                                associated with this invoice line is stored.
                              example: 80000001-1234567890
                            inventorySiteLocationId:
                              type: string
                              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
                            serialNumber:
                              type: string
                              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:
                              type: string
                              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
                            serviceDate:
                              type: string
                              format: date
                              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'
                            salesTaxCodeId:
                              type: string
                              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. If QuickBooks is not set
                                up to charge sales tax (via the "Do You Charge
                                Sales Tax?" preference), it will assign the
                                default non-taxable code to all sales.
                              example: 80000001-1234567890
                            overrideItemAccountId:
                              type: string
                              description: >-
                                The account to use for this invoice line,
                                overriding the default account associated with
                                the item.
                              example: 80000001-1234567890
                            otherCustomField1:
                              type: string
                              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:
                              type: string
                              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
                          required:
                            - id
                          additionalProperties: false
                        minItems: 1
                        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.
                    required:
                      - id
                    additionalProperties: false
                  minItems: 1
                  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.
              required:
                - revisionNumber
              additionalProperties: false
      responses:
        '200':
          description: Returns the updated invoice.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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 a 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: path
          name: id
          description: The QuickBooks-assigned unique identifier of the invoice to delete.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the invoice to
              delete.
            example: 123ABC-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: >-
            Returns a confirmation of the deletion with the ID of the deleted
            invoice.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    description: >-
                      The QuickBooks-assigned unique identifier of the deleted
                      invoice.
                    example: 123ABC-1234567890
                  objectType:
                    type: string
                    const: qbd_invoice
                    description: The type of object. This value is always `"qbd_invoice"`.
                    example: qbd_invoice
                  refNumber:
                    type:
                      - string
                      - '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/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: query
          name: ids
          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.
          schema:
            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.
            example:
              - 80000001-1234567890
        - in: query
          name: names
          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.
          schema:
            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.
            example:
              - Office Supplies Bundle
        - in: query
          name: limit
          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.
          schema:
            type: integer
            minimum: 1
            maximum: 150
            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
        - in: query
          name: cursor
          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.
          schema:
            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.
            example: 12345678-abcd-abcd-example-1234567890ab
        - in: query
          name: status
          description: Filter for item groups that are active, inactive, or both.
          schema:
            type: string
            enum:
              - active
              - all
              - inactive
            default: active
            description: Filter for item groups that are active, inactive, or both.
            example: active
        - in: query
          name: updatedAfter
          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.
          schema:
            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.
            example: 2025-01-01T12:34:56.000Z
        - in: query
          name: updatedBefore
          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.
          schema:
            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.
            example: 2025-02-01T12:34:56.000Z
        - in: query
          name: nameContains
          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`.
          schema:
            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`.
            example: ABC
        - in: query
          name: nameStartsWith
          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`.
          schema:
            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`.
            example: ABC
        - in: query
          name: nameEndsWith
          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`.
          schema:
            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`.
            example: ABC
        - in: query
          name: nameFrom
          description: >-
            Filter for item groups whose `name` is alphabetically greater than
            or equal to this value.
          schema:
            type: string
            description: >-
              Filter for item groups whose `name` is alphabetically greater than
              or equal to this value.
            example: A
        - in: query
          name: nameTo
          description: >-
            Filter for item groups whose `name` is alphabetically less than or
            equal to this value.
          schema:
            type: string
            description: >-
              Filter for item groups whose `name` is alphabetically less than or
              equal to this value.
            example: Z
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns a list of item groups.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          content:
            application/json:
              schema:
                type: object
                properties:
                  objectType:
                    type: string
                    const: list
                    description: The type of object. This value is always `"list"`.
                    example: 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:
                    type:
                      - string
                      - '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:
                    type:
                      - number
                      - '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
          description: The ID of the End-User to receive this request.
          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
      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:
                  type: object
                  properties:
                    value:
                      type: string
                      description: The item's barcode value.
                      example: '012345678905'
                    assignEvenIfUsed:
                      type: boolean
                      description: >-
                        Indicates whether to assign the barcode even if it is
                        already used.
                      example: false
                      default: false
                    allowOverride:
                      type: boolean
                      description: Indicates whether to allow the barcode to be overridden.
                      example: false
                      default: false
                  additionalProperties: false
                  description: The item group's barcode.
                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
                  default: true
                description:
                  type: string
                  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.
                unitOfMeasureSetId:
                  type: string
                  description: >-
                    The unit-of-measure set associated with this item group,
                    which consists of a base unit and related units.
                  example: 80000001-1234567890
                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:
                  type: array
                  items:
                    type: object
                    properties:
                      itemId:
                        type: string
                        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
                      quantity:
                        type: number
                        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:
                        type: string
                        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
                    additionalProperties: false
                  minItems: 1
                  description: The item lines in this item group.
              required:
                - name
                - shouldPrintItemsInGroup
              additionalProperties: false
      responses:
        '200':
          description: Returns the newly created item group.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the item group to
            retrieve.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the item group to
              retrieve.
            example: 80000001-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns the specified item group.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the item group to
            update.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the item group to
              update.
            example: 80000001-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      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:
                  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:
                  type: object
                  properties:
                    value:
                      type: string
                      description: The item's barcode value.
                      example: '012345678905'
                    assignEvenIfUsed:
                      type: boolean
                      description: >-
                        Indicates whether to assign the barcode even if it is
                        already used.
                      example: false
                      default: false
                    allowOverride:
                      type: boolean
                      description: Indicates whether to allow the barcode to be overridden.
                      example: false
                      default: false
                  additionalProperties: false
                  description: The item group's barcode.
                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:
                  type: string
                  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.
                unitOfMeasureSetId:
                  type: string
                  description: >-
                    The unit-of-measure set associated with this item group,
                    which consists of a base unit and related units.
                  example: 80000001-1234567890
                forceUnitOfMeasureChange:
                  type: boolean
                  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
                shouldPrintItemsInGroup:
                  type: boolean
                  description: >-
                    Indicates whether the individual items in this item group
                    and their separate amounts appear on printed forms.
                  example: true
                clearItemLines:
                  type: boolean
                  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
                lines:
                  type: array
                  items:
                    type: object
                    properties:
                      itemId:
                        type: string
                        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
                      quantity:
                        type: number
                        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:
                        type: string
                        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
                    additionalProperties: false
                  minItems: 1
                  description: The item lines in this item group.
              required:
                - revisionNumber
              additionalProperties: false
      responses:
        '200':
          description: Returns the updated item group.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: query
          name: ids
          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.
          schema:
            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.
            example:
              - 123ABC-1234567890
        - in: query
          name: refNumbers
          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.
          schema:
            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.
            example:
              - ITEM RECEIPT-1234
        - in: query
          name: limit
          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.
          schema:
            type: integer
            minimum: 1
            maximum: 150
            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
        - in: query
          name: cursor
          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.
          schema:
            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.
            example: 12345678-abcd-abcd-example-1234567890ab
        - in: query
          name: updatedAfter
          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.
          schema:
            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.
            example: 2025-01-01T12:34:56.000Z
        - in: query
          name: updatedBefore
          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.
          schema:
            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.
            example: 2025-02-01T12:34:56.000Z
        - in: query
          name: transactionDateFrom
          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`).
          schema:
            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`).
            example: '2025-01-01'
        - in: query
          name: transactionDateTo
          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`).
          schema:
            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`).
            example: '2025-02-01'
        - in: query
          name: vendorIds
          description: Filter for item receipts received from these vendors.
          schema:
            type: array
            items:
              type: string
            description: Filter for item receipts received from these vendors.
            example:
              - 80000001-1234567890
        - in: query
          name: accountIds
          description: Filter for item receipts associated with these accounts.
          schema:
            type: array
            items:
              type: string
            description: Filter for item receipts associated with these accounts.
            example:
              - 80000001-1234567890
        - in: query
          name: refNumberContains
          description: >-
            Filter for item receipts whose `refNumber` contains this substring.


            **NOTE**: If you use this parameter, you cannot also use
            `refNumberStartsWith` or `refNumberEndsWith`.
          schema:
            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`.
            example: RECEIPT-1234
        - in: query
          name: refNumberStartsWith
          description: >-
            Filter for item receipts whose `refNumber` starts with this
            substring.


            **NOTE**: If you use this parameter, you cannot also use
            `refNumberContains` or `refNumberEndsWith`.
          schema:
            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`.
            example: RECEIPT
        - in: query
          name: refNumberEndsWith
          description: >-
            Filter for item receipts whose `refNumber` ends with this substring.


            **NOTE**: If you use this parameter, you cannot also use
            `refNumberContains` or `refNumberStartsWith`.
          schema:
            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`.
            example: '1234'
        - in: query
          name: refNumberFrom
          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.
          schema:
            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.
            example: RECEIPT-0001
        - in: query
          name: refNumberTo
          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.
          schema:
            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.
            example: RECEIPT-9999
        - in: query
          name: currencyIds
          description: Filter for item receipts in these currencies.
          schema:
            type: array
            items:
              type: string
            description: Filter for item receipts in these currencies.
            example:
              - 80000001-1234567890
        - in: query
          name: includeLineItems
          description: Whether to include line items in the response. Defaults to `true`.
          schema:
            type: boolean
            description: Whether to include line items in the response. Defaults to `true`.
            example: true
            default: true
        - in: query
          name: includeLinkedTransactions
          description: >-
            Whether to include linked transactions in the response. Defaults to
            `false`. For example, a payment linked to the corresponding item
            receipt.
          schema:
            type: boolean
            description: >-
              Whether to include linked transactions in the response. Defaults
              to `false`. For example, a payment linked to the corresponding
              item receipt.
            example: false
            default: false
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns a list of item receipts.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          content:
            application/json:
              schema:
                type: object
                properties:
                  objectType:
                    type: string
                    const: list
                    description: The type of object. This value is always `"list"`.
                    example: 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:
                    type:
                      - string
                      - '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:
                    type:
                      - number
                      - '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
          description: The ID of the End-User to receive this request.
          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
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                vendorId:
                  type: string
                  description: >-
                    The vendor who sent this item receipt for goods or services
                    purchased.
                  example: 80000001-1234567890
                payablesAccountId:
                  type: string
                  description: >-
                    The Accounts-Payable (A/P) account to which this item
                    receipt is assigned, used to track the amount owed. If not
                    specified, QuickBooks Desktop will use its default A/P
                    account.


                    **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
                transactionDate:
                  type: string
                  format: date
                  description: >-
                    The date of this item receipt, in ISO 8601 format
                    (YYYY-MM-DD).
                  example: '2024-10-01'
                refNumber:
                  type: string
                  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).
                  example: RECEIPT-1234
                memo:
                  type: string
                  description: A memo or note for this item receipt.
                  example: Received 100 units of Product X from Vendor Y
                salesTaxCodeId:
                  type: string
                  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. If QuickBooks is not set up to charge sales tax
                    (via the "Do You Charge Sales Tax?" preference), it will
                    assign the default non-taxable code to all sales.
                  example: 80000001-1234567890
                exchangeRate:
                  type: number
                  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
                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:
                  type: array
                  items:
                    type: string
                  minItems: 1
                  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.
                expenseLines:
                  type: array
                  items:
                    type: object
                    properties:
                      accountId:
                        type: string
                        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
                      amount:
                        type: string
                        description: >-
                          The monetary amount of this expense line, represented
                          as a decimal string.
                        example: '1000.00'
                      memo:
                        type: string
                        description: A memo or note for this expense line.
                        example: New office chair
                      payeeId:
                        type: string
                        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
                      classId:
                        type: string
                        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
                      salesTaxCodeId:
                        type: string
                        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. If QuickBooks is not set up to charge
                          sales tax (via the "Do You Charge Sales Tax?"
                          preference), it will assign the default non-taxable
                          code to all sales.
                        example: 80000001-1234567890
                      billingStatus:
                        type: string
                        enum:
                          - billable
                          - has_been_billed
                          - not_billable
                        description: The billing status of this expense line.
                        example: billable
                        default: billable
                      salesRepresentativeId:
                        type: string
                        description: >-
                          The expense line's sales representative. Sales
                          representatives can be employees, vendors, or other
                          names in QuickBooks.
                        example: 80000001-1234567890
                      customFields:
                        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
                        minItems: 1
                        description: >-
                          The custom fields for the expense line object, added
                          as user-defined data extensions, not included in the
                          standard QuickBooks object.
                    additionalProperties: false
                  minItems: 1
                  description: >-
                    The item receipt's expense lines, each representing one line
                    in this expense.
                itemLines:
                  type: array
                  items:
                    type: object
                    properties:
                      itemId:
                        type: string
                        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
                      inventorySiteId:
                        type: string
                        description: >-
                          The site location where inventory for the item
                          associated with this item line is stored.
                        example: 80000001-1234567890
                      inventorySiteLocationId:
                        type: string
                        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
                      serialNumber:
                        type: string
                        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:
                        type: string
                        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:
                        type: string
                        format: date
                        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'
                      description:
                        type: string
                        description: A description of this item line.
                        example: High-quality widget with custom engraving
                      quantity:
                        type: number
                        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:
                        type: string
                        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
                      cost:
                        type: string
                        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:
                        type: string
                        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'
                      customerId:
                        type: string
                        description: >-
                          The customer or customer-job associated with this item
                          line.
                        example: 80000001-1234567890
                      classId:
                        type: string
                        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
                      salesTaxCodeId:
                        type: string
                        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. If QuickBooks is not set up to charge
                          sales tax (via the "Do You Charge Sales Tax?"
                          preference), it will assign the default non-taxable
                          code to all sales.
                        example: 80000001-1234567890
                      billingStatus:
                        type: string
                        enum:
                          - billable
                          - has_been_billed
                          - not_billable
                        description: The billing status of this item line.
                        example: billable
                        default: billable
                      overrideItemAccountId:
                        type: string
                        description: >-
                          The account to use for this item line, overriding the
                          default account associated with the item.
                        example: 80000001-1234567890
                      linkToTransactionLine:
                        type: object
                        properties:
                          transactionId:
                            type: string
                            description: >-
                              The ID of the transaction to which to link this
                              transaction.
                            example: 123ABC-1234567890
                          transactionLineId:
                            type: string
                            description: >-
                              The ID of the transaction line to which to link
                              this transaction.
                            example: 456DEF-1234567890
                        required:
                          - transactionId
                          - transactionLineId
                        additionalProperties: false
                        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.
                      salesRepresentativeId:
                        type: string
                        description: >-
                          The item line's sales representative. Sales
                          representatives can be employees, vendors, or other
                          names in QuickBooks.
                        example: 80000001-1234567890
                      customFields:
                        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
                        minItems: 1
                        description: >-
                          The custom fields for the item line object, added as
                          user-defined data extensions, not included in the
                          standard QuickBooks object.
                    additionalProperties: false
                  minItems: 1
                  description: >-
                    The item receipt's item lines, each representing the
                    purchase of a specific item or service.
                itemGroupLines:
                  type: array
                  items:
                    type: object
                    properties:
                      itemGroupId:
                        type: string
                        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
                      quantity:
                        type: number
                        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:
                        type: string
                        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
                      inventorySiteId:
                        type: string
                        description: >-
                          The site location where inventory for the item group
                          associated with this item group line is stored.
                        example: 80000001-1234567890
                      inventorySiteLocationId:
                        type: string
                        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
                      customFields:
                        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
                        minItems: 1
                        description: >-
                          The custom fields for the item group line object,
                          added as user-defined data extensions, not included in
                          the standard QuickBooks object.
                    required:
                      - itemGroupId
                    additionalProperties: false
                  minItems: 1
                  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.
              required:
                - vendorId
                - transactionDate
              additionalProperties: false
      responses:
        '200':
          description: Returns the newly created item receipt.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the item receipt to
            retrieve.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the item receipt to
              retrieve.
            example: 123ABC-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns the specified item receipt.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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.
      security:
        - BearerAuth: []
      parameters:
        - in: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the item receipt to
            update.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the item receipt to
              update.
            example: 123ABC-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      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:
                  type: string
                  description: >-
                    The vendor who sent this item receipt for goods or services
                    purchased.
                  example: 80000001-1234567890
                payablesAccountId:
                  type: string
                  description: >-
                    The Accounts-Payable (A/P) account to which this item
                    receipt is assigned, used to track the amount owed. If not
                    specified, QuickBooks Desktop will use its default A/P
                    account.


                    **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
                transactionDate:
                  type: string
                  format: date
                  description: >-
                    The date of this item receipt, in ISO 8601 format
                    (YYYY-MM-DD).
                  example: '2024-10-01'
                refNumber:
                  type: string
                  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:
                  type: string
                  description: A memo or note for this item receipt.
                  example: Received 100 units of Product X from Vendor Y
                salesTaxCodeId:
                  type: string
                  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. If QuickBooks is not set up to charge sales tax
                    (via the "Do You Charge Sales Tax?" preference), it will
                    assign the default non-taxable code to all sales.
                  example: 80000001-1234567890
                exchangeRate:
                  type: number
                  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
                clearExpenseLines:
                  type: boolean
                  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
                expenseLines:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                        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:
                        type: string
                        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
                      amount:
                        type: string
                        description: >-
                          The monetary amount of this expense line, represented
                          as a decimal string.
                        example: '1000.00'
                      memo:
                        type: string
                        description: A memo or note for this expense line.
                        example: New office chair
                      payeeId:
                        type: string
                        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
                      classId:
                        type: string
                        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
                      salesTaxCodeId:
                        type: string
                        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. If QuickBooks is not set up to charge
                          sales tax (via the "Do You Charge Sales Tax?"
                          preference), it will assign the default non-taxable
                          code to all sales.
                        example: 80000001-1234567890
                      billingStatus:
                        type: string
                        enum:
                          - billable
                          - has_been_billed
                          - not_billable
                        description: The billing status of this expense line.
                        example: billable
                      salesRepresentativeId:
                        type: string
                        description: >-
                          The expense line's sales representative. Sales
                          representatives can be employees, vendors, or other
                          names in QuickBooks.
                        example: 80000001-1234567890
                    required:
                      - id
                    additionalProperties: false
                  minItems: 1
                  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.
                clearItemLines:
                  type: boolean
                  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
                itemLines:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                        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:
                        type: string
                        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
                      inventorySiteId:
                        type: string
                        description: >-
                          The site location where inventory for the item
                          associated with this item line is stored.
                        example: 80000001-1234567890
                      inventorySiteLocationId:
                        type: string
                        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
                      serialNumber:
                        type: string
                        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:
                        type: string
                        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:
                        type: string
                        format: date
                        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'
                      description:
                        type: string
                        description: A description of this item line.
                        example: High-quality widget with custom engraving
                      quantity:
                        type: number
                        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:
                        type: string
                        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
                      overrideUnitOfMeasureSetId:
                        type: string
                        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
                      cost:
                        type: string
                        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:
                        type: string
                        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'
                      customerId:
                        type: string
                        description: >-
                          The customer or customer-job associated with this item
                          line.
                        example: 80000001-1234567890
                      classId:
                        type: string
                        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
                      salesTaxCodeId:
                        type: string
                        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. If QuickBooks is not set up to charge
                          sales tax (via the "Do You Charge Sales Tax?"
                          preference), it will assign the default non-taxable
                          code to all sales.
                        example: 80000001-1234567890
                      billingStatus:
                        type: string
                        enum:
                          - billable
                          - has_been_billed
                          - not_billable
                        description: The billing status of this item line.
                        example: billable
                      overrideItemAccountId:
                        type: string
                        description: >-
                          The account to use for this item line, overriding the
                          default account associated with the item.
                        example: 80000001-1234567890
                      salesRepresentativeId:
                        type: string
                        description: >-
                          The item line's sales representative. Sales
                          representatives can be employees, vendors, or other
                          names in QuickBooks.
                        example: 80000001-1234567890
                    required:
                      - id
                    additionalProperties: false
                  minItems: 1
                  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.
                itemGroupLines:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                        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:
                        type: string
                        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
                      quantity:
                        type: number
                        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:
                        type: string
                        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
                      overrideUnitOfMeasureSetId:
                        type: string
                        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
                      itemLines:
                        type: array
                        items:
                          type: object
                          properties:
                            id:
                              type: string
                              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:
                              type: string
                              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
                            inventorySiteId:
                              type: string
                              description: >-
                                The site location where inventory for the item
                                associated with this item line is stored.
                              example: 80000001-1234567890
                            inventorySiteLocationId:
                              type: string
                              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
                            serialNumber:
                              type: string
                              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:
                              type: string
                              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:
                              type: string
                              format: date
                              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'
                            description:
                              type: string
                              description: A description of this item line.
                              example: High-quality widget with custom engraving
                            quantity:
                              type: number
                              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:
                              type: string
                              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
                            overrideUnitOfMeasureSetId:
                              type: string
                              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
                            cost:
                              type: string
                              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:
                              type: string
                              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'
                            customerId:
                              type: string
                              description: >-
                                The customer or customer-job associated with
                                this item line.
                              example: 80000001-1234567890
                            classId:
                              type: string
                              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
                            salesTaxCodeId:
                              type: string
                              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. If QuickBooks is not set
                                up to charge sales tax (via the "Do You Charge
                                Sales Tax?" preference), it will assign the
                                default non-taxable code to all sales.
                              example: 80000001-1234567890
                            billingStatus:
                              type: string
                              enum:
                                - billable
                                - has_been_billed
                                - not_billable
                              description: The billing status of this item line.
                              example: billable
                            overrideItemAccountId:
                              type: string
                              description: >-
                                The account to use for this item line,
                                overriding the default account associated with
                                the item.
                              example: 80000001-1234567890
                            salesRepresentativeId:
                              type: string
                              description: >-
                                The item line's sales representative. Sales
                                representatives can be employees, vendors, or
                                other names in QuickBooks.
                              example: 80000001-1234567890
                          required:
                            - id
                          additionalProperties: false
                        minItems: 1
                        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.
                    required:
                      - id
                    additionalProperties: false
                  minItems: 1
                  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.
              required:
                - revisionNumber
              additionalProperties: false
      responses:
        '200':
          description: Returns the updated item receipt.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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 a 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: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the item receipt to
            delete.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the item receipt to
              delete.
            example: 123ABC-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: >-
            Returns a confirmation of the deletion with the ID of the deleted
            item receipt.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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:
                    type: string
                    const: qbd_item_receipt
                    description: >-
                      The type of object. This value is always
                      `"qbd_item_receipt"`.
                    example: qbd_item_receipt
                  refNumber:
                    type:
                      - string
                      - '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-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: query
          name: ids
          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.
          schema:
            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.
            example:
              - 80000001-1234567890
        - in: query
          name: itemType
          description: Filter for item sites that match this item type.
          schema:
            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.
            example: inventory
        - in: query
          name: itemIds
          description: Filter for item sites for these items.
          schema:
            type: array
            items:
              type: string
            description: Filter for item sites for these items.
            example:
              - 80000001-1234567890
        - in: query
          name: siteIds
          description: >-
            Filter for item sites at these sites.  A site represents a physical
            location, such as a warehouse or store.
          schema:
            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.
            example:
              - 80000001-1234567890
        - in: query
          name: limit
          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.
          schema:
            type: integer
            minimum: 1
            maximum: 150
            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
        - in: query
          name: cursor
          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.
          schema:
            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.
            example: 12345678-abcd-abcd-example-1234567890ab
        - in: query
          name: status
          description: Filter for item sites that are active, inactive, or both.
          schema:
            type: string
            enum:
              - active
              - all
              - inactive
            default: active
            description: Filter for item sites that are active, inactive, or both.
            example: active
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns a list of item sites.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          content:
            application/json:
              schema:
                type: object
                properties:
                  objectType:
                    type: string
                    const: list
                    description: The type of object. This value is always `"list"`.
                    example: 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:
                    type:
                      - string
                      - '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:
                    type:
                      - number
                      - '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: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the item site to
            retrieve.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the item site to
              retrieve.
            example: 80000001-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns the specified item site.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: query
          name: ids
          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.
          schema:
            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.
            example:
              - 123ABC-1234567890
        - in: query
          name: refNumbers
          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.
          schema:
            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.
            example:
              - JOURNAL ENTRY-1234
        - in: query
          name: limit
          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.
          schema:
            type: integer
            minimum: 1
            maximum: 150
            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
        - in: query
          name: cursor
          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.
          schema:
            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.
            example: 12345678-abcd-abcd-example-1234567890ab
        - in: query
          name: updatedAfter
          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.
          schema:
            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.
            example: 2025-01-01T12:34:56.000Z
        - in: query
          name: updatedBefore
          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.
          schema:
            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.
            example: 2025-02-01T12:34:56.000Z
        - in: query
          name: transactionDateFrom
          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`).
          schema:
            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`).
            example: '2025-01-01'
        - in: query
          name: transactionDateTo
          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`).
          schema:
            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`).
            example: '2025-02-01'
        - in: query
          name: entityIds
          description: >-
            Filter for journal entries associated with these entities
            (customers, vendors, employees, etc.).
          schema:
            type: array
            items:
              type: string
            description: >-
              Filter for journal entries associated with these entities
              (customers, vendors, employees, etc.).
            example:
              - 80000001-1234567890
        - in: query
          name: accountIds
          description: Filter for journal entries associated with these accounts.
          schema:
            type: array
            items:
              type: string
            description: Filter for journal entries associated with these accounts.
            example:
              - 80000001-1234567890
        - in: query
          name: refNumberContains
          description: >-
            Filter for journal entries whose `refNumber` contains this
            substring.


            **NOTE**: If you use this parameter, you cannot also use
            `refNumberStartsWith` or `refNumberEndsWith`.
          schema:
            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`.
            example: JE-1234
        - in: query
          name: refNumberStartsWith
          description: >-
            Filter for journal entries whose `refNumber` starts with this
            substring.


            **NOTE**: If you use this parameter, you cannot also use
            `refNumberContains` or `refNumberEndsWith`.
          schema:
            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`.
            example: JE
        - in: query
          name: refNumberEndsWith
          description: >-
            Filter for journal entries whose `refNumber` ends with this
            substring.


            **NOTE**: If you use this parameter, you cannot also use
            `refNumberContains` or `refNumberStartsWith`.
          schema:
            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`.
            example: '1234'
        - in: query
          name: refNumberFrom
          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.
          schema:
            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.
            example: JE-0001
        - in: query
          name: refNumberTo
          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.
          schema:
            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.
            example: JE-9999
        - in: query
          name: currencyIds
          description: Filter for journal entries in these currencies.
          schema:
            type: array
            items:
              type: string
            description: Filter for journal entries in these currencies.
            example:
              - 80000001-1234567890
        - in: query
          name: includeLineItems
          description: Whether to include line items in the response. Defaults to `true`.
          schema:
            type: boolean
            description: Whether to include line items in the response. Defaults to `true`.
            example: true
            default: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns a list of journal entries.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          content:
            application/json:
              schema:
                type: object
                properties:
                  objectType:
                    type: string
                    const: list
                    description: The type of object. This value is always `"list"`.
                    example: 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:
                    type:
                      - string
                      - '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:
                    type:
                      - number
                      - '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
          description: The ID of the End-User to receive this request.
          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
      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:
                  type: string
                  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).
                  example: JE-1234
                isAdjustment:
                  type: boolean
                  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:
                  type: boolean
                  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:
                  type: boolean
                  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
                currencyId:
                  type: string
                  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
                exchangeRate:
                  type: number
                  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:
                  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:
                  type: array
                  items:
                    type: object
                    properties:
                      accountId:
                        type: string
                        description: >-
                          The account to which this journal debit line is being
                          debited. This will decrease the balance of this
                          account.
                        example: 80000001-1234567890
                      amount:
                        type: string
                        description: >-
                          The monetary amount of this journal debit line,
                          represented as a decimal string.
                        example: '1000.00'
                      memo:
                        type: string
                        description: A memo or note for this journal debit line.
                        example: Monthly utility bill settlement
                      entityId:
                        type: string
                        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
                      classId:
                        type: string
                        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
                      salesTaxItemId:
                        type: string
                        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
                      billingStatus:
                        type: string
                        enum:
                          - billable
                          - has_been_billed
                          - not_billable
                        description: The billing status of this journal debit line.
                        example: billable
                        default: billable
                    required:
                      - accountId
                    additionalProperties: false
                  minItems: 1
                  description: The journal entry's debit lines.
                creditLines:
                  type: array
                  items:
                    type: object
                    properties:
                      accountId:
                        type: string
                        description: >-
                          The account to which this journal credit line is being
                          credited. This will increase the balance of this
                          account.
                        example: 80000001-1234567890
                      amount:
                        type: string
                        description: >-
                          The monetary amount of this journal credit line,
                          represented as a decimal string.
                        example: '1000.00'
                      memo:
                        type: string
                        description: A memo or note for this journal credit line.
                        example: Allocated funds for office lease payment
                      entityId:
                        type: string
                        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
                      classId:
                        type: string
                        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
                      salesTaxItemId:
                        type: string
                        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
                      billingStatus:
                        type: string
                        enum:
                          - billable
                          - has_been_billed
                          - not_billable
                        description: The billing status of this journal credit line.
                        example: billable
                        default: billable
                    required:
                      - accountId
                    additionalProperties: false
                  minItems: 1
                  description: The journal entry's credit lines.
              required:
                - transactionDate
              additionalProperties: false
      responses:
        '200':
          description: Returns the newly created journal entry.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the journal entry to
            retrieve.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the journal entry to
              retrieve.
            example: 123ABC-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns the specified journal entry.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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.
      security:
        - BearerAuth: []
      parameters:
        - in: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the journal entry to
            update.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the journal entry to
              update.
            example: 123ABC-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      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:
                  type: string
                  format: date
                  description: >-
                    The date of this journal entry, in ISO 8601 format
                    (YYYY-MM-DD).
                  example: '2024-10-01'
                refNumber:
                  type: string
                  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:
                  type: boolean
                  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
                areAmountsEnteredInHomeCurrency:
                  type: boolean
                  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
                currencyId:
                  type: string
                  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
                exchangeRate:
                  type: number
                  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
                lines:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                        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:
                        type: string
                        enum:
                          - debit
                          - credit
                        description: The type of journal line (debit or credit).
                        example: debit
                      accountId:
                        type: string
                        description: >-
                          The account to which this journal line is being
                          credited or debited.
                        example: 80000001-1234567890
                      amount:
                        type: string
                        description: >-
                          The monetary amount of this journal line, represented
                          as a decimal string.
                        example: '1000.00'
                      memo:
                        type: string
                        description: A memo or note for this journal line.
                        example: Allocated funds for office lease payment
                      entityId:
                        type: string
                        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
                      classId:
                        type: string
                        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
                      salesTaxItemId:
                        type: string
                        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
                      billingStatus:
                        type: string
                        enum:
                          - billable
                          - has_been_billed
                          - not_billable
                        description: The billing status of this journal line.
                        example: billable
                    required:
                      - id
                    additionalProperties: false
                  minItems: 1
                  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.
              required:
                - revisionNumber
              additionalProperties: false
      responses:
        '200':
          description: Returns the updated journal entry.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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 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: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the journal entry to
            delete.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the journal entry to
              delete.
            example: 123ABC-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: >-
            Returns a confirmation of the deletion with the ID of the deleted
            journal entry.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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:
                    type: string
                    const: qbd_journal_entry
                    description: >-
                      The type of object. This value is always
                      `"qbd_journal_entry"`.
                    example: qbd_journal_entry
                  refNumber:
                    type:
                      - string
                      - '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/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: query
          name: ids
          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.
          schema:
            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.
            example:
              - 80000001-1234567890
        - in: query
          name: fullNames
          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.
          schema:
            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.
            example:
              - Office Supplies:Printer Ink Cartridge
        - in: query
          name: limit
          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.
          schema:
            type: integer
            minimum: 1
            maximum: 150
            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
        - in: query
          name: cursor
          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.
          schema:
            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.
            example: 12345678-abcd-abcd-example-1234567890ab
        - in: query
          name: status
          description: Filter for non-inventory items that are active, inactive, or both.
          schema:
            type: string
            enum:
              - active
              - all
              - inactive
            default: active
            description: Filter for non-inventory items that are active, inactive, or both.
            example: active
        - in: query
          name: updatedAfter
          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.
          schema:
            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.
            example: 2025-01-01T12:34:56.000Z
        - in: query
          name: updatedBefore
          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.
          schema:
            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.
            example: 2025-02-01T12:34:56.000Z
        - in: query
          name: nameContains
          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`.
          schema:
            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`.
            example: ABC
        - in: query
          name: nameStartsWith
          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`.
          schema:
            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`.
            example: ABC
        - in: query
          name: nameEndsWith
          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`.
          schema:
            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`.
            example: ABC
        - in: query
          name: nameFrom
          description: >-
            Filter for non-inventory items whose `name` is alphabetically
            greater than or equal to this value.
          schema:
            type: string
            description: >-
              Filter for non-inventory items whose `name` is alphabetically
              greater than or equal to this value.
            example: A
        - in: query
          name: nameTo
          description: >-
            Filter for non-inventory items whose `name` is alphabetically less
            than or equal to this value.
          schema:
            type: string
            description: >-
              Filter for non-inventory items whose `name` is alphabetically less
              than or equal to this value.
            example: Z
        - in: query
          name: classIds
          description: >-
            Filter for non-inventory items of these classes. A class is a way
            end-users can categorize non-inventory items in QuickBooks.
          schema:
            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.
            example:
              - 80000001-1234567890
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns a list of non-inventory items.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          content:
            application/json:
              schema:
                type: object
                properties:
                  objectType:
                    type: string
                    const: list
                    description: The type of object. This value is always `"list"`.
                    example: 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:
                    type:
                      - string
                      - '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:
                    type:
                      - number
                      - '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
          description: The ID of the End-User to receive this request.
          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
      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:
                  type: object
                  properties:
                    value:
                      type: string
                      description: The item's barcode value.
                      example: '012345678905'
                    assignEvenIfUsed:
                      type: boolean
                      description: >-
                        Indicates whether to assign the barcode even if it is
                        already used.
                      example: false
                      default: false
                    allowOverride:
                      type: boolean
                      description: Indicates whether to allow the barcode to be overridden.
                      example: false
                      default: false
                  additionalProperties: false
                  description: The non-inventory item's barcode.
                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
                  default: true
                parentId:
                  type: string
                  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
                classId:
                  type: string
                  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
                sku:
                  type: string
                  description: >-
                    The non-inventory item's stock keeping unit (SKU), which is
                    sometimes the manufacturer's part number.
                  example: MPN-123456
                unitOfMeasureSetId:
                  type: string
                  description: >-
                    The unit-of-measure set associated with this non-inventory
                    item, which consists of a base unit and related units.
                  example: 80000001-1234567890
                salesTaxCodeId:
                  type: string
                  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. If QuickBooks is not set up to charge sales tax
                    (via the "Do You Charge Sales Tax?" preference), it will
                    assign the default non-taxable code to all sales.
                  example: 80000001-1234567890
                salesOrPurchaseDetails:
                  type: object
                  properties:
                    description:
                      type: string
                      description: A description of this item.
                      example: Hourly Consulting Service
                    price:
                      type: string
                      description: >-
                        The price at which this item is purchased or sold,
                        represented as a decimal string.
                      example: '19.99'
                    pricePercentage:
                      type: string
                      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'
                    postingAccountId:
                      type: string
                      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
                  required:
                    - postingAccountId
                  additionalProperties: false
                  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.
                salesAndPurchaseDetails:
                  type: object
                  properties:
                    salesDescription:
                      type: string
                      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:
                      type: string
                      description: >-
                        The price at which this item is sold to customers,
                        represented as a decimal string.
                      example: '19.99'
                    incomeAccountId:
                      type: string
                      description: >-
                        The income account used to track revenue from sales of
                        this item.
                      example: 80000001-1234567890
                    purchaseDescription:
                      type: string
                      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:
                      type: string
                      description: >-
                        The cost at which this item is purchased from vendors,
                        represented as a decimal string.
                      example: '15.75'
                    purchaseTaxCodeId:
                      type: string
                      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
                    expenseAccountId:
                      type: string
                      description: >-
                        The expense account used to track costs from purchases
                        of this item.
                      example: 80000001-1234567890
                    preferredVendorId:
                      type: string
                      description: >-
                        The preferred vendor from whom this item is typically
                        purchased.
                      example: 80000001-1234567890
                  required:
                    - incomeAccountId
                    - expenseAccountId
                  additionalProperties: false
                  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.
                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:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the non-inventory item
            to retrieve.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the non-inventory
              item to retrieve.
            example: 80000001-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns the specified non-inventory item.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the non-inventory item
            to update.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the non-inventory
              item to update.
            example: 80000001-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      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:
                  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:
                  type: object
                  properties:
                    value:
                      type: string
                      description: The item's barcode value.
                      example: '012345678905'
                    assignEvenIfUsed:
                      type: boolean
                      description: >-
                        Indicates whether to assign the barcode even if it is
                        already used.
                      example: false
                      default: false
                    allowOverride:
                      type: boolean
                      description: Indicates whether to allow the barcode to be overridden.
                      example: false
                      default: false
                  additionalProperties: false
                  description: The non-inventory item's barcode.
                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
                classId:
                  type: string
                  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
                parentId:
                  type: string
                  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
                sku:
                  type: string
                  description: >-
                    The non-inventory item's stock keeping unit (SKU), which is
                    sometimes the manufacturer's part number.
                  example: MPN-123456
                unitOfMeasureSetId:
                  type: string
                  description: >-
                    The unit-of-measure set associated with this non-inventory
                    item, which consists of a base unit and related units.
                  example: 80000001-1234567890
                forceUnitOfMeasureChange:
                  type: boolean
                  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
                salesTaxCodeId:
                  type: string
                  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. If QuickBooks is not set up to charge sales tax
                    (via the "Do You Charge Sales Tax?" preference), it will
                    assign the default non-taxable code to all sales.
                  example: 80000001-1234567890
                salesOrPurchaseDetails:
                  type: object
                  properties:
                    description:
                      type: string
                      description: A description of this item.
                      example: Hourly Consulting Service
                    price:
                      type: string
                      description: >-
                        The price at which this item is purchased or sold,
                        represented as a decimal string.
                      example: '19.99'
                    pricePercentage:
                      type: string
                      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'
                    postingAccountId:
                      type: string
                      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
                    updateExistingTransactionsAccount:
                      type: boolean
                      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
                  additionalProperties: false
                  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.
                salesAndPurchaseDetails:
                  type: object
                  properties:
                    salesDescription:
                      type: string
                      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:
                      type: string
                      description: >-
                        The price at which this item is sold to customers,
                        represented as a decimal string.
                      example: '19.99'
                    incomeAccountId:
                      type: string
                      description: >-
                        The income account used to track revenue from sales of
                        this item.
                      example: 80000001-1234567890
                    purchaseDescription:
                      type: string
                      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:
                      type: string
                      description: >-
                        The cost at which this item is purchased from vendors,
                        represented as a decimal string.
                      example: '15.75'
                    purchaseTaxCodeId:
                      type: string
                      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
                    expenseAccountId:
                      type: string
                      description: >-
                        The expense account used to track costs from purchases
                        of this item.
                      example: 80000001-1234567890
                    preferredVendorId:
                      type: string
                      description: >-
                        The preferred vendor from whom this item is typically
                        purchased.
                      example: 80000001-1234567890
                    updateExistingTransactionsIncomeAccount:
                      type: boolean
                      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
                    updateExistingTransactionsExpenseAccount:
                      type: boolean
                      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
                  additionalProperties: false
                  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.
              required:
                - revisionNumber
              additionalProperties: false
      responses:
        '200':
          description: Returns the updated non-inventory item.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: query
          name: ids
          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.
          schema:
            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.
            example:
              - 80000001-1234567890
        - in: query
          name: fullNames
          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.
          schema:
            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.
            example:
              - Shipping Charges:Overnight Delivery
        - in: query
          name: limit
          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.
          schema:
            type: integer
            minimum: 1
            maximum: 150
            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
        - in: query
          name: cursor
          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.
          schema:
            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.
            example: 12345678-abcd-abcd-example-1234567890ab
        - in: query
          name: status
          description: Filter for other charge items that are active, inactive, or both.
          schema:
            type: string
            enum:
              - active
              - all
              - inactive
            default: active
            description: Filter for other charge items that are active, inactive, or both.
            example: active
        - in: query
          name: updatedAfter
          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.
          schema:
            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.
            example: 2025-01-01T12:34:56.000Z
        - in: query
          name: updatedBefore
          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.
          schema:
            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.
            example: 2025-02-01T12:34:56.000Z
        - in: query
          name: nameContains
          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`.
          schema:
            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`.
            example: ABC
        - in: query
          name: nameStartsWith
          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`.
          schema:
            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`.
            example: ABC
        - in: query
          name: nameEndsWith
          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`.
          schema:
            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`.
            example: ABC
        - in: query
          name: nameFrom
          description: >-
            Filter for other charge items whose `name` is alphabetically greater
            than or equal to this value.
          schema:
            type: string
            description: >-
              Filter for other charge items whose `name` is alphabetically
              greater than or equal to this value.
            example: A
        - in: query
          name: nameTo
          description: >-
            Filter for other charge items whose `name` is alphabetically less
            than or equal to this value.
          schema:
            type: string
            description: >-
              Filter for other charge items whose `name` is alphabetically less
              than or equal to this value.
            example: Z
        - in: query
          name: classIds
          description: >-
            Filter for other charge items of these classes. A class is a way
            end-users can categorize other charge items in QuickBooks.
          schema:
            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.
            example:
              - 80000001-1234567890
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns a list of other charge items.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          content:
            application/json:
              schema:
                type: object
                properties:
                  objectType:
                    type: string
                    const: list
                    description: The type of object. This value is always `"list"`.
                    example: 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:
                    type:
                      - string
                      - '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:
                    type:
                      - number
                      - '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
          description: The ID of the End-User to receive this request.
          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
      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:
                  type: object
                  properties:
                    value:
                      type: string
                      description: The item's barcode value.
                      example: '012345678905'
                    assignEvenIfUsed:
                      type: boolean
                      description: >-
                        Indicates whether to assign the barcode even if it is
                        already used.
                      example: false
                      default: false
                    allowOverride:
                      type: boolean
                      description: Indicates whether to allow the barcode to be overridden.
                      example: false
                      default: false
                  additionalProperties: false
                  description: The other charge item's barcode.
                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
                  default: true
                classId:
                  type: string
                  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
                parentId:
                  type: string
                  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
                salesTaxCodeId:
                  type: string
                  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. If QuickBooks is not set up to charge sales tax
                    (via the "Do You Charge Sales Tax?" preference), it will
                    assign the default non-taxable code to all sales.
                  example: 80000001-1234567890
                salesOrPurchaseDetails:
                  type: object
                  properties:
                    description:
                      type: string
                      description: A description of this item.
                      example: Hourly Consulting Service
                    price:
                      type: string
                      description: >-
                        The price at which this item is purchased or sold,
                        represented as a decimal string.
                      example: '19.99'
                    pricePercentage:
                      type: string
                      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'
                    postingAccountId:
                      type: string
                      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
                  required:
                    - postingAccountId
                  additionalProperties: false
                  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.
                salesAndPurchaseDetails:
                  type: object
                  properties:
                    salesDescription:
                      type: string
                      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:
                      type: string
                      description: >-
                        The price at which this item is sold to customers,
                        represented as a decimal string.
                      example: '19.99'
                    incomeAccountId:
                      type: string
                      description: >-
                        The income account used to track revenue from sales of
                        this item.
                      example: 80000001-1234567890
                    purchaseDescription:
                      type: string
                      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:
                      type: string
                      description: >-
                        The cost at which this item is purchased from vendors,
                        represented as a decimal string.
                      example: '15.75'
                    purchaseTaxCodeId:
                      type: string
                      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
                    expenseAccountId:
                      type: string
                      description: >-
                        The expense account used to track costs from purchases
                        of this item.
                      example: 80000001-1234567890
                    preferredVendorId:
                      type: string
                      description: >-
                        The preferred vendor from whom this item is typically
                        purchased.
                      example: 80000001-1234567890
                  required:
                    - incomeAccountId
                    - expenseAccountId
                  additionalProperties: false
                  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.
                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:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the other charge item
            to retrieve.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the other charge item
              to retrieve.
            example: 80000001-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns the specified other charge item.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the other charge item
            to update.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the other charge item
              to update.
            example: 80000001-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      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:
                  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:
                  type: object
                  properties:
                    value:
                      type: string
                      description: The item's barcode value.
                      example: '012345678905'
                    assignEvenIfUsed:
                      type: boolean
                      description: >-
                        Indicates whether to assign the barcode even if it is
                        already used.
                      example: false
                      default: false
                    allowOverride:
                      type: boolean
                      description: Indicates whether to allow the barcode to be overridden.
                      example: false
                      default: false
                  additionalProperties: false
                  description: The other charge item's barcode.
                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
                classId:
                  type: string
                  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
                parentId:
                  type: string
                  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
                salesTaxCodeId:
                  type: string
                  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. If QuickBooks is not set up to charge sales tax
                    (via the "Do You Charge Sales Tax?" preference), it will
                    assign the default non-taxable code to all sales.
                  example: 80000001-1234567890
                salesOrPurchaseDetails:
                  type: object
                  properties:
                    description:
                      type: string
                      description: A description of this item.
                      example: Hourly Consulting Service
                    price:
                      type: string
                      description: >-
                        The price at which this item is purchased or sold,
                        represented as a decimal string.
                      example: '19.99'
                    pricePercentage:
                      type: string
                      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'
                    postingAccountId:
                      type: string
                      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
                    updateExistingTransactionsAccount:
                      type: boolean
                      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
                  additionalProperties: false
                  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.
                salesAndPurchaseDetails:
                  type: object
                  properties:
                    salesDescription:
                      type: string
                      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:
                      type: string
                      description: >-
                        The price at which this item is sold to customers,
                        represented as a decimal string.
                      example: '19.99'
                    incomeAccountId:
                      type: string
                      description: >-
                        The income account used to track revenue from sales of
                        this item.
                      example: 80000001-1234567890
                    purchaseDescription:
                      type: string
                      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:
                      type: string
                      description: >-
                        The cost at which this item is purchased from vendors,
                        represented as a decimal string.
                      example: '15.75'
                    purchaseTaxCodeId:
                      type: string
                      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
                    expenseAccountId:
                      type: string
                      description: >-
                        The expense account used to track costs from purchases
                        of this item.
                      example: 80000001-1234567890
                    preferredVendorId:
                      type: string
                      description: >-
                        The preferred vendor from whom this item is typically
                        purchased.
                      example: 80000001-1234567890
                    updateExistingTransactionsIncomeAccount:
                      type: boolean
                      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
                    updateExistingTransactionsExpenseAccount:
                      type: boolean
                      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
                  additionalProperties: false
                  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.
              required:
                - revisionNumber
              additionalProperties: false
      responses:
        '200':
          description: Returns the updated other charge item.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: query
          name: ids
          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.
          schema:
            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.
            example:
              - 80000001-1234567890
        - in: query
          name: names
          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.
          schema:
            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.
            example:
              - John Doe
        - in: query
          name: limit
          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.
          schema:
            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.
            example: 10
        - in: query
          name: status
          description: Filter for other-names that are active, inactive, or both.
          schema:
            type: string
            enum:
              - active
              - all
              - inactive
            default: active
            description: Filter for other-names that are active, inactive, or both.
            example: active
        - in: query
          name: updatedAfter
          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.
          schema:
            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.
            example: 2025-01-01T12:34:56.000Z
        - in: query
          name: updatedBefore
          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.
          schema:
            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.
            example: 2025-02-01T12:34:56.000Z
        - in: query
          name: nameContains
          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`.
          schema:
            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`.
            example: ABC
        - in: query
          name: nameStartsWith
          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`.
          schema:
            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`.
            example: ABC
        - in: query
          name: nameEndsWith
          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`.
          schema:
            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`.
            example: ABC
        - in: query
          name: nameFrom
          description: >-
            Filter for other-names whose `name` is alphabetically greater than
            or equal to this value.
          schema:
            type: string
            description: >-
              Filter for other-names whose `name` is alphabetically greater than
              or equal to this value.
            example: A
        - in: query
          name: nameTo
          description: >-
            Filter for other-names whose `name` is alphabetically less than or
            equal to this value.
          schema:
            type: string
            description: >-
              Filter for other-names whose `name` is alphabetically less than or
              equal to this value.
            example: Z
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns a list of other-names.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          content:
            application/json:
              schema:
                type: object
                properties:
                  objectType:
                    type: string
                    const: list
                    description: The type of object. This value is always `"list"`.
                    example: 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
          description: The ID of the End-User to receive this request.
          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
      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:
                  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
                  default: true
                companyName:
                  type: string
                  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:
                  type: string
                  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:
                  type: string
                  maxLength: 25
                  description: |-
                    The first name of the contact person for this other-name.

                    Maximum length: 25 characters.
                  example: John
                middleName:
                  type: string
                  maxLength: 5
                  description: |-
                    The middle name of the contact person for this other-name.

                    Maximum length: 5 characters.
                  example: A.
                lastName:
                  type: string
                  maxLength: 25
                  description: |-
                    The last name of the contact person for this other-name.

                    Maximum length: 25 characters.
                  example: Doe
                address:
                  type: object
                  properties:
                    line1:
                      type: string
                      maxLength: 41
                      description: >-
                        The first line of the address (e.g., street, PO Box, or
                        company name).


                        Maximum length: 41 characters.
                      example: Conductor Labs Inc.
                    line2:
                      type: string
                      maxLength: 41
                      description: >-
                        The second line of the address, if needed (e.g.,
                        apartment, suite, unit, or building).


                        Maximum length: 41 characters.
                      example: 540 Market St.
                    line3:
                      type: string
                      maxLength: 41
                      description: |-
                        The third line of the address, if needed.

                        Maximum length: 41 characters.
                      example: Suite 100
                    line4:
                      type: string
                      maxLength: 41
                      description: |-
                        The fourth line of the address, if needed.

                        Maximum length: 41 characters.
                      example: ''
                    line5:
                      type: string
                      maxLength: 41
                      description: |-
                        The fifth line of the address, if needed.

                        Maximum length: 41 characters.
                      example: ''
                    city:
                      type: string
                      maxLength: 31
                      description: >-
                        The city, district, suburb, town, or village name of the
                        address.


                        Maximum length: 31 characters.
                      example: San Francisco
                    state:
                      type: string
                      maxLength: 21
                      description: >-
                        The state, county, province, or region name of the
                        address.


                        Maximum length: 21 characters.
                      example: CA
                    postalCode:
                      type: string
                      maxLength: 13
                      description: |-
                        The postal code or ZIP code of the address.

                        Maximum length: 13 characters.
                      example: '94110'
                    country:
                      type: string
                      description: The country name of the address.
                      example: United States
                    note:
                      type: string
                      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
                  additionalProperties: false
                  description: The other-name's address.
                phone:
                  type: string
                  description: The other-name's primary telephone number.
                  example: +1-555-123-4567
                alternatePhone:
                  type: string
                  description: The other-name's alternate telephone number.
                  example: +1-555-987-6543
                fax:
                  type: string
                  description: The other-name's fax number.
                  example: +1-555-555-1212
                email:
                  type: string
                  description: The other-name's email address.
                  example: other-name@example.com
                contact:
                  type: string
                  description: The name of the primary contact person for this other-name.
                  example: Jane Smith
                alternateContact:
                  type: string
                  description: The name of a alternate contact person for this other-name.
                  example: Bob Johnson
                accountNumber:
                  type: string
                  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:
                  type: string
                  description: A note or comment about this other-name.
                  example: This employee is a key employee.
                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:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the other-name to
            retrieve.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the other-name to
              retrieve.
            example: 80000001-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns the specified other-name.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the other-name to
            update.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the other-name to
              update.
            example: 80000001-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      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:
                  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:
                  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:
                  type: string
                  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:
                  type: string
                  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:
                  type: string
                  maxLength: 25
                  description: |-
                    The first name of the contact person for this other-name.

                    Maximum length: 25 characters.
                  example: John
                middleName:
                  type: string
                  maxLength: 5
                  description: |-
                    The middle name of the contact person for this other-name.

                    Maximum length: 5 characters.
                  example: A.
                lastName:
                  type: string
                  maxLength: 25
                  description: |-
                    The last name of the contact person for this other-name.

                    Maximum length: 25 characters.
                  example: Doe
                address:
                  type: object
                  properties:
                    line1:
                      type: string
                      maxLength: 41
                      description: >-
                        The first line of the address (e.g., street, PO Box, or
                        company name).


                        Maximum length: 41 characters.
                      example: Conductor Labs Inc.
                    line2:
                      type: string
                      maxLength: 41
                      description: >-
                        The second line of the address, if needed (e.g.,
                        apartment, suite, unit, or building).


                        Maximum length: 41 characters.
                      example: 540 Market St.
                    line3:
                      type: string
                      maxLength: 41
                      description: |-
                        The third line of the address, if needed.

                        Maximum length: 41 characters.
                      example: Suite 100
                    line4:
                      type: string
                      maxLength: 41
                      description: |-
                        The fourth line of the address, if needed.

                        Maximum length: 41 characters.
                      example: ''
                    line5:
                      type: string
                      maxLength: 41
                      description: |-
                        The fifth line of the address, if needed.

                        Maximum length: 41 characters.
                      example: ''
                    city:
                      type: string
                      maxLength: 31
                      description: >-
                        The city, district, suburb, town, or village name of the
                        address.


                        Maximum length: 31 characters.
                      example: San Francisco
                    state:
                      type: string
                      maxLength: 21
                      description: >-
                        The state, county, province, or region name of the
                        address.


                        Maximum length: 21 characters.
                      example: CA
                    postalCode:
                      type: string
                      maxLength: 13
                      description: |-
                        The postal code or ZIP code of the address.

                        Maximum length: 13 characters.
                      example: '94110'
                    country:
                      type: string
                      description: The country name of the address.
                      example: United States
                    note:
                      type: string
                      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
                  additionalProperties: false
                  description: The other-name's address.
                phone:
                  type: string
                  description: The other-name's primary telephone number.
                  example: +1-555-123-4567
                alternatePhone:
                  type: string
                  description: The other-name's alternate telephone number.
                  example: +1-555-987-6543
                fax:
                  type: string
                  description: The other-name's fax number.
                  example: +1-555-555-1212
                email:
                  type: string
                  description: The other-name's email address.
                  example: other-name@example.com
                contact:
                  type: string
                  description: The name of the primary contact person for this other-name.
                  example: Jane Smith
                alternateContact:
                  type: string
                  description: The name of a alternate contact person for this other-name.
                  example: Bob Johnson
                accountNumber:
                  type: string
                  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:
                  type: string
                  description: A note or comment about this other-name.
                  example: This employee is a key employee.
              required:
                - revisionNumber
              additionalProperties: false
      responses:
        '200':
          description: Returns the updated other-name.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: query
          name: ids
          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.
          schema:
            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.
            example:
              - 80000001-1234567890
        - in: query
          name: names
          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.
          schema:
            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.
            example:
              - Cash
        - in: query
          name: limit
          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.
          schema:
            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.
            example: 10
        - in: query
          name: status
          description: Filter for payment methods that are active, inactive, or both.
          schema:
            type: string
            enum:
              - active
              - all
              - inactive
            default: active
            description: Filter for payment methods that are active, inactive, or both.
            example: active
        - in: query
          name: updatedAfter
          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.
          schema:
            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.
            example: 2025-01-01T12:34:56.000Z
        - in: query
          name: updatedBefore
          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.
          schema:
            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.
            example: 2025-02-01T12:34:56.000Z
        - in: query
          name: nameContains
          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`.
          schema:
            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`.
            example: ABC
        - in: query
          name: nameStartsWith
          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`.
          schema:
            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`.
            example: ABC
        - in: query
          name: nameEndsWith
          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`.
          schema:
            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`.
            example: ABC
        - in: query
          name: nameFrom
          description: >-
            Filter for payment methods whose `name` is alphabetically greater
            than or equal to this value.
          schema:
            type: string
            description: >-
              Filter for payment methods whose `name` is alphabetically greater
              than or equal to this value.
            example: A
        - in: query
          name: nameTo
          description: >-
            Filter for payment methods whose `name` is alphabetically less than
            or equal to this value.
          schema:
            type: string
            description: >-
              Filter for payment methods whose `name` is alphabetically less
              than or equal to this value.
            example: Z
        - in: query
          name: paymentMethodType
          description: Filter for payment methods of this type.
          schema:
            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.
            example: cash
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns a list of payment methods.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          content:
            application/json:
              schema:
                type: object
                properties:
                  objectType:
                    type: string
                    const: list
                    description: The type of object. This value is always `"list"`.
                    example: 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
          description: The ID of the End-User to receive this request.
          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
      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:
                  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
                  default: 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:
                - name
                - paymentMethodType
              additionalProperties: false
      responses:
        '200':
          description: Returns the newly created payment method.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the payment method to
            retrieve.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the payment method to
              retrieve.
            example: 80000001-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns the specified payment method.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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/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: query
          name: ids
          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.
          schema:
            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.
            example:
              - 80000001-1234567890
        - in: query
          name: names
          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.
          schema:
            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.
            example:
              - Regular Pay
        - in: query
          name: limit
          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.
          schema:
            type: integer
            minimum: 1
            maximum: 150
            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
        - in: query
          name: cursor
          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.
          schema:
            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.
            example: 12345678-abcd-abcd-example-1234567890ab
        - in: query
          name: status
          description: Filter for payroll wage items that are active, inactive, or both.
          schema:
            type: string
            enum:
              - active
              - all
              - inactive
            default: active
            description: Filter for payroll wage items that are active, inactive, or both.
            example: active
        - in: query
          name: updatedAfter
          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.
          schema:
            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.
            example: 2025-01-01T12:34:56.000Z
        - in: query
          name: updatedBefore
          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.
          schema:
            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.
            example: 2025-02-01T12:34:56.000Z
        - in: query
          name: nameContains
          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`.
          schema:
            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`.
            example: ABC
        - in: query
          name: nameStartsWith
          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`.
          schema:
            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`.
            example: ABC
        - in: query
          name: nameEndsWith
          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`.
          schema:
            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`.
            example: ABC
        - in: query
          name: nameFrom
          description: >-
            Filter for payroll wage items whose `name` is alphabetically greater
            than or equal to this value.
          schema:
            type: string
            description: >-
              Filter for payroll wage items whose `name` is alphabetically
              greater than or equal to this value.
            example: A
        - in: query
          name: nameTo
          description: >-
            Filter for payroll wage items whose `name` is alphabetically less
            than or equal to this value.
          schema:
            type: string
            description: >-
              Filter for payroll wage items whose `name` is alphabetically less
              than or equal to this value.
            example: Z
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns a list of payroll wage items.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          content:
            application/json:
              schema:
                type: object
                properties:
                  objectType:
                    type: string
                    const: list
                    description: The type of object. This value is always `"list"`.
                    example: 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:
                    type:
                      - string
                      - '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:
                    type:
                      - number
                      - '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
          description: The ID of the End-User to receive this request.
          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
      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:
                  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
                  default: 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
                overtimeMultiplier:
                  type: string
                  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:
                  type: string
                  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:
                  type: string
                  description: >-
                    The default rate for this payroll wage item expressed as a
                    percentage. Only one of `rate` and `ratePercent` can be set.
                  example: '10'
                expenseAccountId:
                  type: string
                  description: >-
                    The expense account used to track wage expenses paid through
                    this payroll wage item.
                  example: 80000001-1234567890
              required:
                - name
                - wageType
                - expenseAccountId
              additionalProperties: false
      responses:
        '200':
          description: Returns the newly created payroll wage item.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the payroll wage item
            to retrieve.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the payroll wage item
              to retrieve.
            example: 80000001-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns the specified payroll wage item.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns an object with the company file's preferences.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: query
          name: ids
          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.
          schema:
            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.
            example:
              - 80000001-1234567890
        - in: query
          name: names
          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.
          schema:
            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.
            example:
              - Wholesale 20% Discount
        - in: query
          name: limit
          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.
          schema:
            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.
            example: 10
        - in: query
          name: status
          description: Filter for price levels that are active, inactive, or both.
          schema:
            type: string
            enum:
              - active
              - all
              - inactive
            default: active
            description: Filter for price levels that are active, inactive, or both.
            example: active
        - in: query
          name: updatedAfter
          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.
          schema:
            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.
            example: 2025-01-01T12:34:56.000Z
        - in: query
          name: updatedBefore
          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.
          schema:
            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.
            example: 2025-02-01T12:34:56.000Z
        - in: query
          name: nameContains
          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`.
          schema:
            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`.
            example: ABC
        - in: query
          name: nameStartsWith
          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`.
          schema:
            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`.
            example: ABC
        - in: query
          name: nameEndsWith
          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`.
          schema:
            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`.
            example: ABC
        - in: query
          name: nameFrom
          description: >-
            Filter for price levels whose `name` is alphabetically greater than
            or equal to this value.
          schema:
            type: string
            description: >-
              Filter for price levels whose `name` is alphabetically greater
              than or equal to this value.
            example: A
        - in: query
          name: nameTo
          description: >-
            Filter for price levels whose `name` is alphabetically less than or
            equal to this value.
          schema:
            type: string
            description: >-
              Filter for price levels whose `name` is alphabetically less than
              or equal to this value.
            example: Z
        - in: query
          name: itemIds
          description: Filter for price levels containing these items.
          schema:
            type: array
            items:
              type: string
            description: Filter for price levels containing these items.
            example:
              - 80000001-1234567890
        - in: query
          name: currencyIds
          description: Filter for price levels in these currencies.
          schema:
            type: array
            items:
              type: string
            description: Filter for price levels in these currencies.
            example:
              - 80000001-1234567890
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns a list of price levels.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          content:
            application/json:
              schema:
                type: object
                properties:
                  objectType:
                    type: string
                    const: list
                    description: The type of object. This value is always `"list"`.
                    example: 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
          description: The ID of the End-User to receive this request.
          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
      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:
                  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
                  default: true
                fixedPercentage:
                  type: string
                  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:
                    type: object
                    properties:
                      itemId:
                        type: string
                        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
                      customPrice:
                        type: string
                        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:
                        type: string
                        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'
                      adjustPercentage:
                        type: string
                        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'
                      adjustRelativeTo:
                        type: string
                        enum:
                          - cost
                          - current_custom_price
                          - standard_price
                        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
                    required:
                      - itemId
                      - adjustPercentage
                      - adjustRelativeTo
                    additionalProperties: false
                  minItems: 1
                  description: >-
                    The per-item price level configurations for this price
                    level.
                currencyId:
                  type: string
                  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
              required:
                - name
              additionalProperties: false
      responses:
        '200':
          description: Returns the newly created price level.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the price level to
            retrieve.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the price level to
              retrieve.
            example: 80000001-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns the specified price level.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the price level to
            update.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the price level to
              update.
            example: 80000001-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      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:
                  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:
                  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
                fixedPercentage:
                  type: string
                  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:
                    type: object
                    properties:
                      itemId:
                        type: string
                        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
                      customPrice:
                        type: string
                        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:
                        type: string
                        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'
                      adjustPercentage:
                        type: string
                        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'
                      adjustRelativeTo:
                        type: string
                        enum:
                          - cost
                          - current_custom_price
                          - standard_price
                        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
                    required:
                      - itemId
                      - adjustPercentage
                      - adjustRelativeTo
                    additionalProperties: false
                  minItems: 1
                  description: >-
                    The per-item price level configurations for this price
                    level.
                currencyId:
                  type: string
                  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
              required:
                - revisionNumber
              additionalProperties: false
      responses:
        '200':
          description: Returns the updated price level.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: query
          name: ids
          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.
          schema:
            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.
            example:
              - 123ABC-1234567890
        - in: query
          name: refNumbers
          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.
          schema:
            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.
            example:
              - PURCHASE ORDER-1234
        - in: query
          name: limit
          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.
          schema:
            type: integer
            minimum: 1
            maximum: 150
            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
        - in: query
          name: cursor
          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.
          schema:
            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.
            example: 12345678-abcd-abcd-example-1234567890ab
        - in: query
          name: updatedAfter
          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.
          schema:
            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.
            example: 2025-01-01T12:34:56.000Z
        - in: query
          name: updatedBefore
          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.
          schema:
            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.
            example: 2025-02-01T12:34:56.000Z
        - in: query
          name: transactionDateFrom
          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`).
          schema:
            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`).
            example: '2025-01-01'
        - in: query
          name: transactionDateTo
          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`).
          schema:
            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`).
            example: '2025-02-01'
        - in: query
          name: vendorIds
          description: Filter for purchase orders sent to these vendors.
          schema:
            type: array
            items:
              type: string
            description: Filter for purchase orders sent to these vendors.
            example:
              - 80000001-1234567890
        - in: query
          name: accountIds
          description: Filter for purchase orders associated with these accounts.
          schema:
            type: array
            items:
              type: string
            description: Filter for purchase orders associated with these accounts.
            example:
              - 80000001-1234567890
        - in: query
          name: refNumberContains
          description: >-
            Filter for purchase orders whose `refNumber` contains this
            substring.


            **NOTE**: If you use this parameter, you cannot also use
            `refNumberStartsWith` or `refNumberEndsWith`.
          schema:
            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`.
            example: PO-1234
        - in: query
          name: refNumberStartsWith
          description: >-
            Filter for purchase orders whose `refNumber` starts with this
            substring.


            **NOTE**: If you use this parameter, you cannot also use
            `refNumberContains` or `refNumberEndsWith`.
          schema:
            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`.
            example: PO
        - in: query
          name: refNumberEndsWith
          description: >-
            Filter for purchase orders whose `refNumber` ends with this
            substring.


            **NOTE**: If you use this parameter, you cannot also use
            `refNumberContains` or `refNumberStartsWith`.
          schema:
            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`.
            example: '1234'
        - in: query
          name: refNumberFrom
          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.
          schema:
            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.
            example: PO-0001
        - in: query
          name: refNumberTo
          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.
          schema:
            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.
            example: PO-9999
        - in: query
          name: currencyIds
          description: Filter for purchase orders in these currencies.
          schema:
            type: array
            items:
              type: string
            description: Filter for purchase orders in these currencies.
            example:
              - 80000001-1234567890
        - in: query
          name: includeLineItems
          description: Whether to include line items in the response. Defaults to `true`.
          schema:
            type: boolean
            description: Whether to include line items in the response. Defaults to `true`.
            example: true
            default: true
        - in: query
          name: includeLinkedTransactions
          description: >-
            Whether to include linked transactions in the response. Defaults to
            `false`. For example, a payment linked to the corresponding purchase
            order.
          schema:
            type: boolean
            description: >-
              Whether to include linked transactions in the response. Defaults
              to `false`. For example, a payment linked to the corresponding
              purchase order.
            example: false
            default: false
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns a list of purchase orders.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          content:
            application/json:
              schema:
                type: object
                properties:
                  objectType:
                    type: string
                    const: list
                    description: The type of object. This value is always `"list"`.
                    example: 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:
                    type:
                      - string
                      - '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:
                    type:
                      - number
                      - '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
          description: The ID of the End-User to receive this request.
          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
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                vendorId:
                  type: string
                  description: >-
                    The vendor who sent this purchase order for goods or
                    services purchased.
                  example: 80000001-1234567890
                classId:
                  type: string
                  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
                inventorySiteId:
                  type: string
                  description: >-
                    The site location where inventory for the item associated
                    with this purchase order is stored.
                  example: 80000001-1234567890
                shipToEntityId:
                  type: string
                  description: >-
                    The customer, vendor, employee, or other entity to whom this
                    purchase order is to be shipped.
                  example: 80000001-1234567890
                documentTemplateId:
                  type: string
                  description: >-
                    The predefined template in QuickBooks that determines the
                    layout and formatting for this purchase order when printed
                    or displayed.
                  example: 80000001-1234567890
                transactionDate:
                  type: string
                  format: date
                  description: >-
                    The date of this purchase order, in ISO 8601 format
                    (YYYY-MM-DD).
                  example: '2024-10-01'
                refNumber:
                  type: string
                  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).
                  example: PO-1234
                vendorAddress:
                  type: object
                  properties:
                    line1:
                      type: string
                      maxLength: 41
                      description: >-
                        The first line of the address (e.g., street, PO Box, or
                        company name).


                        Maximum length: 41 characters.
                      example: Conductor Labs Inc.
                    line2:
                      type: string
                      maxLength: 41
                      description: >-
                        The second line of the address, if needed (e.g.,
                        apartment, suite, unit, or building).


                        Maximum length: 41 characters.
                      example: 540 Market St.
                    line3:
                      type: string
                      maxLength: 41
                      description: |-
                        The third line of the address, if needed.

                        Maximum length: 41 characters.
                      example: Suite 100
                    line4:
                      type: string
                      maxLength: 41
                      description: |-
                        The fourth line of the address, if needed.

                        Maximum length: 41 characters.
                      example: ''
                    line5:
                      type: string
                      maxLength: 41
                      description: |-
                        The fifth line of the address, if needed.

                        Maximum length: 41 characters.
                      example: ''
                    city:
                      type: string
                      maxLength: 31
                      description: >-
                        The city, district, suburb, town, or village name of the
                        address.


                        Maximum length: 31 characters.
                      example: San Francisco
                    state:
                      type: string
                      maxLength: 21
                      description: >-
                        The state, county, province, or region name of the
                        address.


                        Maximum length: 21 characters.
                      example: CA
                    postalCode:
                      type: string
                      maxLength: 13
                      description: |-
                        The postal code or ZIP code of the address.

                        Maximum length: 13 characters.
                      example: '94110'
                    country:
                      type: string
                      description: The country name of the address.
                      example: United States
                    note:
                      type: string
                      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
                  additionalProperties: false
                  description: The address of the vendor who sent this purchase order.
                shippingAddress:
                  type: object
                  properties:
                    line1:
                      type: string
                      maxLength: 41
                      description: >-
                        The first line of the address (e.g., street, PO Box, or
                        company name).


                        Maximum length: 41 characters.
                      example: Conductor Labs Inc.
                    line2:
                      type: string
                      maxLength: 41
                      description: >-
                        The second line of the address, if needed (e.g.,
                        apartment, suite, unit, or building).


                        Maximum length: 41 characters.
                      example: 540 Market St.
                    line3:
                      type: string
                      maxLength: 41
                      description: |-
                        The third line of the address, if needed.

                        Maximum length: 41 characters.
                      example: Suite 100
                    line4:
                      type: string
                      maxLength: 41
                      description: |-
                        The fourth line of the address, if needed.

                        Maximum length: 41 characters.
                      example: ''
                    line5:
                      type: string
                      maxLength: 41
                      description: |-
                        The fifth line of the address, if needed.

                        Maximum length: 41 characters.
                      example: ''
                    city:
                      type: string
                      maxLength: 31
                      description: >-
                        The city, district, suburb, town, or village name of the
                        address.


                        Maximum length: 31 characters.
                      example: San Francisco
                    state:
                      type: string
                      maxLength: 21
                      description: >-
                        The state, county, province, or region name of the
                        address.


                        Maximum length: 21 characters.
                      example: CA
                    postalCode:
                      type: string
                      maxLength: 13
                      description: |-
                        The postal code or ZIP code of the address.

                        Maximum length: 13 characters.
                      example: '94110'
                    country:
                      type: string
                      description: The country name of the address.
                      example: United States
                    note:
                      type: string
                      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
                  additionalProperties: false
                  description: The purchase order's shipping address.
                termsId:
                  type: string
                  description: >-
                    The purchase order's payment terms, defining when payment is
                    due and any applicable discounts.
                  example: 80000001-1234567890
                dueDate:
                  type: string
                  format: date
                  description: >-
                    The date by which this purchase order must be paid, in ISO
                    8601 format (YYYY-MM-DD).
                  example: '2024-10-31'
                expectedDate:
                  type: string
                  format: date
                  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'
                shippingMethodId:
                  type: string
                  description: >-
                    The shipping method used for this purchase order, such as
                    standard mail or overnight delivery.
                  example: 80000001-1234567890
                shipmentOrigin:
                  type: string
                  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
                memo:
                  type: string
                  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:
                  type: string
                  description: >-
                    A message to be printed on this purchase order for the
                    vendor to read.
                  example: Please include packing slip with shipment
                isQueuedForPrint:
                  type: boolean
                  description: >-
                    Indicates whether this purchase order is included in the
                    queue of documents for QuickBooks to print.
                  example: true
                isQueuedForEmail:
                  type: boolean
                  description: >-
                    Indicates whether this purchase order is included in the
                    queue of documents for QuickBooks to email to the customer.
                  example: true
                salesTaxCodeId:
                  type: string
                  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. If QuickBooks is not set up to charge sales tax
                    (via the "Do You Charge Sales Tax?" preference), it will
                    assign the default non-taxable code to all sales.
                  example: 80000001-1234567890
                otherCustomField1:
                  type: string
                  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:
                  type: string
                  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
                exchangeRate:
                  type: number
                  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
                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:
                  type: array
                  items:
                    type: object
                    properties:
                      itemId:
                        type: string
                        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
                      sku:
                        type: string
                        description: >-
                          The purchase order line's stock keeping unit (SKU),
                          which is sometimes the manufacturer's part number.
                        example: MPN-123456
                      description:
                        type: string
                        description: A description of this purchase order line.
                        example: Office chairs - Herman Miller Aeron (Black)
                      quantity:
                        type: number
                        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:
                        type: string
                        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
                      rate:
                        type: string
                        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'
                      classId:
                        type: string
                        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
                      amount:
                        type: string
                        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'
                      inventorySiteLocationId:
                        type: string
                        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
                      payeeId:
                        type: string
                        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
                      serviceDate:
                        type: string
                        format: date
                        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'
                      salesTaxCodeId:
                        type: string
                        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. If QuickBooks is not set up to charge
                          sales tax (via the "Do You Charge Sales Tax?"
                          preference), it will assign the default non-taxable
                          code to all sales.
                        example: 80000001-1234567890
                      overrideItemAccountId:
                        type: string
                        description: >-
                          The account to use for this purchase order line,
                          overriding the default account associated with the
                          item.
                        example: 80000001-1234567890
                      otherCustomField1:
                        type: string
                        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:
                        type: string
                        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:
                          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
                        minItems: 1
                        description: >-
                          The custom fields for the purchase order line object,
                          added as user-defined data extensions, not included in
                          the standard QuickBooks object.
                    additionalProperties: false
                  minItems: 1
                  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.
                lineGroups:
                  type: array
                  items:
                    type: object
                    properties:
                      itemGroupId:
                        type: string
                        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
                      quantity:
                        type: number
                        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:
                        type: string
                        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
                      inventorySiteLocationId:
                        type: string
                        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
                      customFields:
                        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
                        minItems: 1
                        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:
                      - itemGroupId
                    additionalProperties: false
                  minItems: 1
                  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.
              required:
                - transactionDate
              additionalProperties: false
      responses:
        '200':
          description: Returns the newly created purchase order.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the purchase order to
            retrieve.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the purchase order to
              retrieve.
            example: 123ABC-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns the specified purchase order.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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.
      security:
        - BearerAuth: []
      parameters:
        - in: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the purchase order to
            update.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the purchase order to
              update.
            example: 123ABC-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      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:
                  type: string
                  description: >-
                    The vendor who sent this purchase order for goods or
                    services purchased.
                  example: 80000001-1234567890
                classId:
                  type: string
                  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
                inventorySiteId:
                  type: string
                  description: >-
                    The site location where inventory for the item associated
                    with this purchase order is stored.
                  example: 80000001-1234567890
                shipToEntityId:
                  type: string
                  description: >-
                    The customer, vendor, employee, or other entity to whom this
                    purchase order is to be shipped.
                  example: 80000001-1234567890
                documentTemplateId:
                  type: string
                  description: >-
                    The predefined template in QuickBooks that determines the
                    layout and formatting for this purchase order when printed
                    or displayed.
                  example: 80000001-1234567890
                transactionDate:
                  type: string
                  format: date
                  description: >-
                    The date of this purchase order, in ISO 8601 format
                    (YYYY-MM-DD).
                  example: '2024-10-01'
                refNumber:
                  type: string
                  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:
                  type: object
                  properties:
                    line1:
                      type: string
                      maxLength: 41
                      description: >-
                        The first line of the address (e.g., street, PO Box, or
                        company name).


                        Maximum length: 41 characters.
                      example: Conductor Labs Inc.
                    line2:
                      type: string
                      maxLength: 41
                      description: >-
                        The second line of the address, if needed (e.g.,
                        apartment, suite, unit, or building).


                        Maximum length: 41 characters.
                      example: 540 Market St.
                    line3:
                      type: string
                      maxLength: 41
                      description: |-
                        The third line of the address, if needed.

                        Maximum length: 41 characters.
                      example: Suite 100
                    line4:
                      type: string
                      maxLength: 41
                      description: |-
                        The fourth line of the address, if needed.

                        Maximum length: 41 characters.
                      example: ''
                    line5:
                      type: string
                      maxLength: 41
                      description: |-
                        The fifth line of the address, if needed.

                        Maximum length: 41 characters.
                      example: ''
                    city:
                      type: string
                      maxLength: 31
                      description: >-
                        The city, district, suburb, town, or village name of the
                        address.


                        Maximum length: 31 characters.
                      example: San Francisco
                    state:
                      type: string
                      maxLength: 21
                      description: >-
                        The state, county, province, or region name of the
                        address.


                        Maximum length: 21 characters.
                      example: CA
                    postalCode:
                      type: string
                      maxLength: 13
                      description: |-
                        The postal code or ZIP code of the address.

                        Maximum length: 13 characters.
                      example: '94110'
                    country:
                      type: string
                      description: The country name of the address.
                      example: United States
                    note:
                      type: string
                      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
                  additionalProperties: false
                  description: The address of the vendor who sent this purchase order.
                shippingAddress:
                  type: object
                  properties:
                    line1:
                      type: string
                      maxLength: 41
                      description: >-
                        The first line of the address (e.g., street, PO Box, or
                        company name).


                        Maximum length: 41 characters.
                      example: Conductor Labs Inc.
                    line2:
                      type: string
                      maxLength: 41
                      description: >-
                        The second line of the address, if needed (e.g.,
                        apartment, suite, unit, or building).


                        Maximum length: 41 characters.
                      example: 540 Market St.
                    line3:
                      type: string
                      maxLength: 41
                      description: |-
                        The third line of the address, if needed.

                        Maximum length: 41 characters.
                      example: Suite 100
                    line4:
                      type: string
                      maxLength: 41
                      description: |-
                        The fourth line of the address, if needed.

                        Maximum length: 41 characters.
                      example: ''
                    line5:
                      type: string
                      maxLength: 41
                      description: |-
                        The fifth line of the address, if needed.

                        Maximum length: 41 characters.
                      example: ''
                    city:
                      type: string
                      maxLength: 31
                      description: >-
                        The city, district, suburb, town, or village name of the
                        address.


                        Maximum length: 31 characters.
                      example: San Francisco
                    state:
                      type: string
                      maxLength: 21
                      description: >-
                        The state, county, province, or region name of the
                        address.


                        Maximum length: 21 characters.
                      example: CA
                    postalCode:
                      type: string
                      maxLength: 13
                      description: |-
                        The postal code or ZIP code of the address.

                        Maximum length: 13 characters.
                      example: '94110'
                    country:
                      type: string
                      description: The country name of the address.
                      example: United States
                    note:
                      type: string
                      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
                  additionalProperties: false
                  description: The purchase order's shipping address.
                termsId:
                  type: string
                  description: >-
                    The purchase order's payment terms, defining when payment is
                    due and any applicable discounts.
                  example: 80000001-1234567890
                dueDate:
                  type: string
                  format: date
                  description: >-
                    The date by which this purchase order must be paid, in ISO
                    8601 format (YYYY-MM-DD).
                  example: '2024-10-31'
                expectedDate:
                  type: string
                  format: date
                  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'
                shippingMethodId:
                  type: string
                  description: >-
                    The shipping method used for this purchase order, such as
                    standard mail or overnight delivery.
                  example: 80000001-1234567890
                shipmentOrigin:
                  type: string
                  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
                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
                memo:
                  type: string
                  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:
                  type: string
                  description: >-
                    A message to be printed on this purchase order for the
                    vendor to read.
                  example: Please include packing slip with shipment
                isQueuedForPrint:
                  type: boolean
                  description: >-
                    Indicates whether this purchase order is included in the
                    queue of documents for QuickBooks to print.
                  example: true
                isQueuedForEmail:
                  type: boolean
                  description: >-
                    Indicates whether this purchase order is included in the
                    queue of documents for QuickBooks to email to the customer.
                  example: true
                salesTaxCodeId:
                  type: string
                  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. If QuickBooks is not set up to charge sales tax
                    (via the "Do You Charge Sales Tax?" preference), it will
                    assign the default non-taxable code to all sales.
                  example: 80000001-1234567890
                otherCustomField1:
                  type: string
                  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:
                  type: string
                  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
                exchangeRate:
                  type: number
                  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
                lines:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                        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:
                        type: string
                        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
                      sku:
                        type: string
                        description: >-
                          The purchase order line's stock keeping unit (SKU),
                          which is sometimes the manufacturer's part number.
                        example: MPN-123456
                      description:
                        type: string
                        description: A description of this purchase order line.
                        example: Office chairs - Herman Miller Aeron (Black)
                      quantity:
                        type: number
                        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:
                        type: string
                        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
                      overrideUnitOfMeasureSetId:
                        type: string
                        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
                      rate:
                        type: string
                        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'
                      classId:
                        type: string
                        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
                      amount:
                        type: string
                        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'
                      inventorySiteLocationId:
                        type: string
                        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
                      payeeId:
                        type: string
                        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
                      serviceDate:
                        type: string
                        format: date
                        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'
                      salesTaxCodeId:
                        type: string
                        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. If QuickBooks is not set up to charge
                          sales tax (via the "Do You Charge Sales Tax?"
                          preference), it will assign the default non-taxable
                          code to all sales.
                        example: 80000001-1234567890
                      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
                      overrideItemAccountId:
                        type: string
                        description: >-
                          The account to use for this purchase order line,
                          overriding the default account associated with the
                          item.
                        example: 80000001-1234567890
                      otherCustomField1:
                        type: string
                        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:
                        type: string
                        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
                    required:
                      - id
                    additionalProperties: false
                  minItems: 1
                  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.
                lineGroups:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                        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:
                        type: string
                        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
                      quantity:
                        type: number
                        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:
                        type: string
                        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
                      overrideUnitOfMeasureSetId:
                        type: string
                        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
                      lines:
                        type: array
                        items:
                          type: object
                          properties:
                            id:
                              type: string
                              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:
                              type: string
                              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
                            sku:
                              type: string
                              description: >-
                                The purchase order line's stock keeping unit
                                (SKU), which is sometimes the manufacturer's
                                part number.
                              example: MPN-123456
                            description:
                              type: string
                              description: A description of this purchase order line.
                              example: Office chairs - Herman Miller Aeron (Black)
                            quantity:
                              type: number
                              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:
                              type: string
                              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
                            overrideUnitOfMeasureSetId:
                              type: string
                              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
                            rate:
                              type: string
                              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'
                            classId:
                              type: string
                              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
                            amount:
                              type: string
                              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'
                            inventorySiteLocationId:
                              type: string
                              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
                            payeeId:
                              type: string
                              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
                            serviceDate:
                              type: string
                              format: date
                              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'
                            salesTaxCodeId:
                              type: string
                              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. If QuickBooks is not set
                                up to charge sales tax (via the "Do You Charge
                                Sales Tax?" preference), it will assign the
                                default non-taxable code to all sales.
                              example: 80000001-1234567890
                            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
                            overrideItemAccountId:
                              type: string
                              description: >-
                                The account to use for this purchase order line,
                                overriding the default account associated with
                                the item.
                              example: 80000001-1234567890
                            otherCustomField1:
                              type: string
                              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:
                              type: string
                              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
                          required:
                            - id
                          additionalProperties: false
                        minItems: 1
                        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.
                    required:
                      - id
                    additionalProperties: false
                  minItems: 1
                  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.
              required:
                - revisionNumber
              additionalProperties: false
      responses:
        '200':
          description: Returns the updated purchase order.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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 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: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the purchase order to
            delete.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the purchase order to
              delete.
            example: 123ABC-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: >-
            Returns a confirmation of the deletion with the ID of the deleted
            purchase order.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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:
                    type: string
                    const: qbd_purchase_order
                    description: >-
                      The type of object. This value is always
                      `"qbd_purchase_order"`.
                    example: qbd_purchase_order
                  refNumber:
                    type:
                      - string
                      - '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: query
          name: ids
          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.
          schema:
            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.
            example:
              - 123ABC-1234567890
        - in: query
          name: refNumbers
          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.
          schema:
            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.
            example:
              - RECEIVE-PAYMENT-1234
        - in: query
          name: limit
          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.
          schema:
            type: integer
            minimum: 1
            maximum: 150
            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
        - in: query
          name: cursor
          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.
          schema:
            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.
            example: 12345678-abcd-abcd-example-1234567890ab
        - in: query
          name: updatedAfter
          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.
          schema:
            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.
            example: 2025-01-01T12:34:56.000Z
        - in: query
          name: updatedBefore
          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.
          schema:
            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.
            example: 2025-02-01T12:34:56.000Z
        - in: query
          name: transactionDateFrom
          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`).
          schema:
            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`).
            example: '2025-01-01'
        - in: query
          name: transactionDateTo
          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`).
          schema:
            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`).
            example: '2025-02-01'
        - in: query
          name: customerIds
          description: Filter for receive-payments received from these customers.
          schema:
            type: array
            items:
              type: string
            description: Filter for receive-payments received from these customers.
            example:
              - 80000001-1234567890
        - in: query
          name: accountIds
          description: Filter for receive-payments associated with these accounts.
          schema:
            type: array
            items:
              type: string
            description: Filter for receive-payments associated with these accounts.
            example:
              - 80000001-1234567890
        - in: query
          name: refNumberContains
          description: >-
            Filter for receive-payments whose `refNumber` contains this
            substring.


            **NOTE**: If you use this parameter, you cannot also use
            `refNumberStartsWith` or `refNumberEndsWith`.
          schema:
            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`.
            example: PAYMENT-1234
        - in: query
          name: refNumberStartsWith
          description: >-
            Filter for receive-payments whose `refNumber` starts with this
            substring.


            **NOTE**: If you use this parameter, you cannot also use
            `refNumberContains` or `refNumberEndsWith`.
          schema:
            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`.
            example: PAYMENT
        - in: query
          name: refNumberEndsWith
          description: >-
            Filter for receive-payments whose `refNumber` ends with this
            substring.


            **NOTE**: If you use this parameter, you cannot also use
            `refNumberContains` or `refNumberStartsWith`.
          schema:
            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`.
            example: '1234'
        - in: query
          name: refNumberFrom
          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.
          schema:
            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.
            example: PAYMENT-0001
        - in: query
          name: refNumberTo
          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.
          schema:
            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.
            example: PAYMENT-9999
        - in: query
          name: currencyIds
          description: Filter for receive-payments in these currencies.
          schema:
            type: array
            items:
              type: string
            description: Filter for receive-payments in these currencies.
            example:
              - 80000001-1234567890
        - in: query
          name: includeLineItems
          description: Whether to include line items in the response. Defaults to `true`.
          schema:
            type: boolean
            description: Whether to include line items in the response. Defaults to `true`.
            example: true
            default: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns a list of receive-payments.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          content:
            application/json:
              schema:
                type: object
                properties:
                  objectType:
                    type: string
                    const: list
                    description: The type of object. This value is always `"list"`.
                    example: 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:
                    type:
                      - string
                      - '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:
                    type:
                      - number
                      - '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 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
          description: The ID of the End-User to receive this request.
          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
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                customerId:
                  type: string
                  description: >-
                    The customer or customer-job to which the payment for this
                    receive-payment is credited.
                  example: 80000001-1234567890
                receivablesAccountId:
                  type: string
                  description: >-
                    The Accounts-Receivable (A/R) account to which this
                    receive-payment is assigned, used to track the amount owed.
                    If not specified, QuickBooks Desktop will use its default
                    A/R account.


                    **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
                transactionDate:
                  type: string
                  format: date
                  description: >-
                    The date of this receive-payment, in ISO 8601 format
                    (YYYY-MM-DD).
                  example: '2024-10-01'
                refNumber:
                  type: string
                  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).
                  example: PAYMENT-1234
                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.
                  example: '1000.00'
                exchangeRate:
                  type: number
                  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
                paymentMethodId:
                  type: string
                  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
                memo:
                  type: string
                  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
                depositToAccountId:
                  type: string
                  description: >-
                    The account where the funds for this receive-payment will be
                    or have been deposited. If omitted, QuickBooks will use the
                    default Undeposited Funds account.
                  example: 80000001-1234567890
                creditCardTransaction:
                  type: object
                  properties:
                    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:
                          type: string
                          description: The cardholder's name on the card.
                          example: John Doe
                        address:
                          type: string
                          description: The card's billing address.
                          example: 1234 Main St, Anytown, USA, 12345
                        postalCode:
                          type: string
                          description: The card's billing address ZIP or postal code.
                          example: '12345'
                        commercialCardCode:
                          type: string
                          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:
                          type: string
                          enum:
                            - card_not_present
                            - card_present
                          description: >-
                            Indicates whether this credit card transaction came
                            from a card swipe (`card_present`) or not
                            (`card_not_present`).
                          example: card_not_present
                          default: card_not_present
                        transactionType:
                          type: string
                          enum:
                            - authorization
                            - capture
                            - charge
                            - refund
                            - voice_authorization
                          description: >-
                            The QBMS transaction type from which the current
                            transaction data originated.
                          example: charge
                      required:
                        - number
                        - expirationMonth
                        - expirationYear
                        - name
                      additionalProperties: false
                      description: >-
                        The transaction request data originally supplied for
                        this credit card transaction when using QuickBooks
                        Merchant Services (QBMS).
                    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:
                          type: string
                          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:
                          type: string
                          enum:
                            - fail
                            - not_available
                            - pass
                          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:
                          type: string
                          enum:
                            - fail
                            - not_available
                            - pass
                          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:
                          type: string
                          enum:
                            - fail
                            - not_available
                            - pass
                          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:
                          type: string
                          description: >-
                            An internal ID returned by QuickBooks Merchant
                            Services (QBMS) from the transaction request, needed
                            for the QuickBooks reconciliation feature.
                          example: '1234567890'
                        paymentGroupingCode:
                          type: number
                          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:
                          type: number
                          description: >-
                            An internal value for this credit card transaction,
                            needed for the QuickBooks reconciliation feature.
                          example: 2
                        clientTransactionId:
                          type: string
                          description: >-
                            A value returned from QBMS transactions for future
                            use by the QuickBooks Reconciliation feature.
                          example: '1234567890'
                      required:
                        - statusCode
                        - statusMessage
                        - creditCardTransactionId
                        - merchantAccountNumber
                        - paymentStatus
                        - transactionAuthorizedAt
                      additionalProperties: false
                      description: >-
                        The transaction response data for this credit card
                        transaction when using QuickBooks Merchant Services
                        (QBMS).
                  additionalProperties: false
                  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.
                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:
                  type: boolean
                  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
                applyToTransactions:
                  type: array
                  items:
                    type: object
                    properties:
                      transactionId:
                        type: string
                        description: >-
                          The ID of the receivable transaction to which this
                          payment is applied.
                        example: 123ABC-1234567890
                      paymentAmount:
                        type: string
                        description: >-
                          The monetary amount to apply to the receivable
                          transaction, represented as a decimal string.
                        example: '25.00'
                      applyCredits:
                        type: array
                        items:
                          type: object
                          properties:
                            creditTransactionId:
                              type: string
                              description: >-
                                The unique identifier of the credit transaction
                                (credit memo or vendor credit) to apply to this
                                transaction.
                              example: ABCDEF-1234567890
                            appliedAmount:
                              type: string
                              description: >-
                                The amount of credit applied to this
                                transaction. This could include customer
                                deposits, payments, or credits. Represented as a
                                decimal string.
                              example: '100.00'
                            overrideCreditApplication:
                              type: boolean
                              description: Indicates whether to override the credit.
                              example: false
                              default: false
                          required:
                            - creditTransactionId
                            - appliedAmount
                          additionalProperties: false
                        minItems: 1
                        description: >-
                          Credit memos to apply to this receivable transaction,
                          reducing its balance. This creates a link between this
                          receivable transaction and the specified credit memos.


                          **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 receivable transaction and check
                          the `linkedTransactions` response field. If fetching a
                          list of receivable transactions, you must also specify
                          the parameter `includeLinkedTransactions=true` to see
                          the `linkedTransactions` response field.
                      discountAmount:
                        type: string
                        description: >-
                          The monetary amount by which to reduce the receivable
                          transaction's receivable amount, represented as a
                          decimal string.
                        example: '50.00'
                      discountAccountId:
                        type: string
                        description: >-
                          The financial account used to track this receivable
                          transaction's discount.
                        example: 80000001-1234567890
                      discountClassId:
                        type: string
                        description: >-
                          The class used to track this receivable transaction's
                          discount.
                        example: 80000001-1234567890
                    required:
                      - transactionId
                    additionalProperties: false
                  minItems: 1
                  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.
              required:
                - customerId
                - transactionDate
                - totalAmount
              additionalProperties: false
      responses:
        '200':
          description: Returns the newly created receive-payment.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the receive-payment to
            retrieve.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the receive-payment
              to retrieve.
            example: 123ABC-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns the specified receive-payment.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the receive-payment to
            update.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the receive-payment
              to update.
            example: 123ABC-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      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:
                  type: string
                  description: >-
                    The customer or customer-job to which the payment for this
                    receive-payment is credited.
                  example: 80000001-1234567890
                receivablesAccountId:
                  type: string
                  description: >-
                    The Accounts-Receivable (A/R) account to which this
                    receive-payment is assigned, used to track the amount owed.
                    If not specified, QuickBooks Desktop will use its default
                    A/R account.


                    **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
                transactionDate:
                  type: string
                  format: date
                  description: >-
                    The date of this receive-payment, in ISO 8601 format
                    (YYYY-MM-DD).
                  example: '2024-10-01'
                refNumber:
                  type: string
                  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.


                    **NOTE**: The sum of the `paymentAmount` amounts in the
                    `applyToTransactions` array cannot exceed the `totalAmount`,
                    or you will receive an error.
                  example: '1000.00'
                exchangeRate:
                  type: number
                  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
                paymentMethodId:
                  type: string
                  description: >-
                    The receive-payment's payment method (e.g., cash, check,
                    credit card).
                  example: 80000001-1234567890
                memo:
                  type: string
                  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
                depositToAccountId:
                  type: string
                  description: >-
                    The account where the funds for this receive-payment will be
                    or have been deposited.
                  example: 80000001-1234567890
                creditCardTransaction:
                  type: object
                  properties:
                    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:
                          type: string
                          description: The cardholder's name on the card.
                          example: John Doe
                        address:
                          type: string
                          description: The card's billing address.
                          example: 1234 Main St, Anytown, USA, 12345
                        postalCode:
                          type: string
                          description: The card's billing address ZIP or postal code.
                          example: '12345'
                        commercialCardCode:
                          type: string
                          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:
                          type: string
                          enum:
                            - card_not_present
                            - card_present
                          description: >-
                            Indicates whether this credit card transaction came
                            from a card swipe (`card_present`) or not
                            (`card_not_present`).
                          example: card_not_present
                        transactionType:
                          type: string
                          enum:
                            - authorization
                            - capture
                            - charge
                            - refund
                            - voice_authorization
                          description: >-
                            The QBMS transaction type from which the current
                            transaction data originated.
                          example: charge
                      additionalProperties: false
                      description: >-
                        The transaction request data originally supplied for
                        this credit card transaction when using QuickBooks
                        Merchant Services (QBMS).
                    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:
                          type: string
                          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:
                          type: string
                          enum:
                            - fail
                            - not_available
                            - pass
                          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:
                          type: string
                          enum:
                            - fail
                            - not_available
                            - pass
                          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:
                          type: string
                          enum:
                            - fail
                            - not_available
                            - pass
                          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:
                          type: string
                          description: >-
                            An internal ID returned by QuickBooks Merchant
                            Services (QBMS) from the transaction request, needed
                            for the QuickBooks reconciliation feature.
                          example: '1234567890'
                        paymentGroupingCode:
                          type: number
                          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:
                          type: number
                          description: >-
                            An internal value for this credit card transaction,
                            needed for the QuickBooks reconciliation feature.
                          example: 2
                        clientTransactionId:
                          type: string
                          description: >-
                            A value returned from QBMS transactions for future
                            use by the QuickBooks Reconciliation feature.
                          example: '1234567890'
                      additionalProperties: false
                      description: >-
                        The transaction response data for this credit card
                        transaction when using QuickBooks Merchant Services
                        (QBMS).
                  additionalProperties: false
                  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.
                applyToTransactions:
                  type: array
                  items:
                    type: object
                    properties:
                      transactionId:
                        type: string
                        description: >-
                          The ID of the receivable transaction to which this
                          payment is applied.
                        example: 123ABC-1234567890
                      paymentAmount:
                        type: string
                        description: >-
                          The monetary amount to apply to the receivable
                          transaction, represented as a decimal string.
                        example: '25.00'
                      applyCredits:
                        type: array
                        items:
                          type: object
                          properties:
                            creditTransactionId:
                              type: string
                              description: >-
                                The unique identifier of the credit transaction
                                (credit memo or vendor credit) to apply to this
                                transaction.
                              example: ABCDEF-1234567890
                            appliedAmount:
                              type: string
                              description: >-
                                The amount of credit applied to this
                                transaction. This could include customer
                                deposits, payments, or credits. Represented as a
                                decimal string.
                              example: '100.00'
                            overrideCreditApplication:
                              type: boolean
                              description: Indicates whether to override the credit.
                              example: false
                              default: false
                          required:
                            - creditTransactionId
                            - appliedAmount
                          additionalProperties: false
                        minItems: 1
                        description: >-
                          Credit memos to apply to this receivable transaction,
                          reducing its balance. This creates a link between this
                          receivable transaction and the specified credit memos.


                          **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 receivable transaction and check
                          the `linkedTransactions` response field. If fetching a
                          list of receivable transactions, you must also specify
                          the parameter `includeLinkedTransactions=true` to see
                          the `linkedTransactions` response field.
                      discountAmount:
                        type: string
                        description: >-
                          The monetary amount by which to reduce the receivable
                          transaction's receivable amount, represented as a
                          decimal string.
                        example: '50.00'
                      discountAccountId:
                        type: string
                        description: >-
                          The financial account used to track this receivable
                          transaction's discount.
                        example: 80000001-1234567890
                      discountClassId:
                        type: string
                        description: >-
                          The class used to track this receivable transaction's
                          discount.
                        example: 80000001-1234567890
                    required:
                      - transactionId
                    additionalProperties: false
                  minItems: 1
                  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".
              required:
                - revisionNumber
              additionalProperties: false
      responses:
        '200':
          description: Returns the updated receive-payment.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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 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: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the receive-payment to
            delete.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the receive-payment
              to delete.
            example: 123ABC-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: >-
            Returns a confirmation of the deletion with the ID of the deleted
            receive-payment.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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:
                    type: string
                    const: qbd_receive_payment
                    description: >-
                      The type of object. This value is always
                      `"qbd_receive_payment"`.
                    example: qbd_receive_payment
                  refNumber:
                    type:
                      - string
                      - '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/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: query
          name: ids
          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.
          schema:
            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.
            example:
              - 123ABC-1234567890
        - in: query
          name: refNumbers
          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.
          schema:
            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.
            example:
              - SALES ORDER-1234
        - in: query
          name: limit
          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.
          schema:
            type: integer
            minimum: 1
            maximum: 150
            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
        - in: query
          name: cursor
          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.
          schema:
            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.
            example: 12345678-abcd-abcd-example-1234567890ab
        - in: query
          name: updatedAfter
          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.
          schema:
            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.
            example: 2025-01-01T12:34:56.000Z
        - in: query
          name: updatedBefore
          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.
          schema:
            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.
            example: 2025-02-01T12:34:56.000Z
        - in: query
          name: transactionDateFrom
          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`).
          schema:
            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`).
            example: '2025-01-01'
        - in: query
          name: transactionDateTo
          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`).
          schema:
            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`).
            example: '2025-02-01'
        - in: query
          name: customerIds
          description: Filter for sales orders created for these customers.
          schema:
            type: array
            items:
              type: string
            description: Filter for sales orders created for these customers.
            example:
              - 80000001-1234567890
        - in: query
          name: refNumberContains
          description: >-
            Filter for sales orders whose `refNumber` contains this substring.


            **NOTE**: If you use this parameter, you cannot also use
            `refNumberStartsWith` or `refNumberEndsWith`.
          schema:
            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`.
            example: SO-1234
        - in: query
          name: refNumberStartsWith
          description: >-
            Filter for sales orders whose `refNumber` starts with this
            substring.


            **NOTE**: If you use this parameter, you cannot also use
            `refNumberContains` or `refNumberEndsWith`.
          schema:
            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`.
            example: SO
        - in: query
          name: refNumberEndsWith
          description: >-
            Filter for sales orders whose `refNumber` ends with this substring.


            **NOTE**: If you use this parameter, you cannot also use
            `refNumberContains` or `refNumberStartsWith`.
          schema:
            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`.
            example: '1234'
        - in: query
          name: refNumberFrom
          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.
          schema:
            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.
            example: SO-0001
        - in: query
          name: refNumberTo
          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.
          schema:
            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.
            example: SO-9999
        - in: query
          name: currencyIds
          description: Filter for sales orders in these currencies.
          schema:
            type: array
            items:
              type: string
            description: Filter for sales orders in these currencies.
            example:
              - 80000001-1234567890
        - in: query
          name: includeLineItems
          description: Whether to include line items in the response. Defaults to `true`.
          schema:
            type: boolean
            description: Whether to include line items in the response. Defaults to `true`.
            example: true
            default: true
        - in: query
          name: includeLinkedTransactions
          description: >-
            Whether to include linked transactions in the response. Defaults to
            `false`. For example, a payment linked to the corresponding sales
            order.
          schema:
            type: boolean
            description: >-
              Whether to include linked transactions in the response. Defaults
              to `false`. For example, a payment linked to the corresponding
              sales order.
            example: false
            default: false
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns a list of sales orders.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          content:
            application/json:
              schema:
                type: object
                properties:
                  objectType:
                    type: string
                    const: list
                    description: The type of object. This value is always `"list"`.
                    example: 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:
                    type:
                      - string
                      - '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:
                    type:
                      - number
                      - '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
          description: The ID of the End-User to receive this request.
          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
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                customerId:
                  type: string
                  description: >-
                    The customer or customer-job associated with this sales
                    order.
                  example: 80000001-1234567890
                classId:
                  type: string
                  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
                documentTemplateId:
                  type: string
                  description: >-
                    The predefined template in QuickBooks that determines the
                    layout and formatting for this sales order when printed or
                    displayed.
                  example: 80000001-1234567890
                transactionDate:
                  type: string
                  format: date
                  description: >-
                    The date of this sales order, in ISO 8601 format
                    (YYYY-MM-DD).
                  example: '2024-10-01'
                refNumber:
                  type: string
                  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).
                  example: SO-1234
                billingAddress:
                  type: object
                  properties:
                    line1:
                      type: string
                      maxLength: 41
                      description: >-
                        The first line of the address (e.g., street, PO Box, or
                        company name).


                        Maximum length: 41 characters.
                      example: Conductor Labs Inc.
                    line2:
                      type: string
                      maxLength: 41
                      description: >-
                        The second line of the address, if needed (e.g.,
                        apartment, suite, unit, or building).


                        Maximum length: 41 characters.
                      example: 540 Market St.
                    line3:
                      type: string
                      maxLength: 41
                      description: |-
                        The third line of the address, if needed.

                        Maximum length: 41 characters.
                      example: Suite 100
                    line4:
                      type: string
                      maxLength: 41
                      description: |-
                        The fourth line of the address, if needed.

                        Maximum length: 41 characters.
                      example: ''
                    line5:
                      type: string
                      maxLength: 41
                      description: |-
                        The fifth line of the address, if needed.

                        Maximum length: 41 characters.
                      example: ''
                    city:
                      type: string
                      maxLength: 31
                      description: >-
                        The city, district, suburb, town, or village name of the
                        address.


                        Maximum length: 31 characters.
                      example: San Francisco
                    state:
                      type: string
                      maxLength: 21
                      description: >-
                        The state, county, province, or region name of the
                        address.


                        Maximum length: 21 characters.
                      example: CA
                    postalCode:
                      type: string
                      maxLength: 13
                      description: |-
                        The postal code or ZIP code of the address.

                        Maximum length: 13 characters.
                      example: '94110'
                    country:
                      type: string
                      description: The country name of the address.
                      example: United States
                    note:
                      type: string
                      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
                  additionalProperties: false
                  description: The sales order's billing address.
                shippingAddress:
                  type: object
                  properties:
                    line1:
                      type: string
                      maxLength: 41
                      description: >-
                        The first line of the address (e.g., street, PO Box, or
                        company name).


                        Maximum length: 41 characters.
                      example: Conductor Labs Inc.
                    line2:
                      type: string
                      maxLength: 41
                      description: >-
                        The second line of the address, if needed (e.g.,
                        apartment, suite, unit, or building).


                        Maximum length: 41 characters.
                      example: 540 Market St.
                    line3:
                      type: string
                      maxLength: 41
                      description: |-
                        The third line of the address, if needed.

                        Maximum length: 41 characters.
                      example: Suite 100
                    line4:
                      type: string
                      maxLength: 41
                      description: |-
                        The fourth line of the address, if needed.

                        Maximum length: 41 characters.
                      example: ''
                    line5:
                      type: string
                      maxLength: 41
                      description: |-
                        The fifth line of the address, if needed.

                        Maximum length: 41 characters.
                      example: ''
                    city:
                      type: string
                      maxLength: 31
                      description: >-
                        The city, district, suburb, town, or village name of the
                        address.


                        Maximum length: 31 characters.
                      example: San Francisco
                    state:
                      type: string
                      maxLength: 21
                      description: >-
                        The state, county, province, or region name of the
                        address.


                        Maximum length: 21 characters.
                      example: CA
                    postalCode:
                      type: string
                      maxLength: 13
                      description: |-
                        The postal code or ZIP code of the address.

                        Maximum length: 13 characters.
                      example: '94110'
                    country:
                      type: string
                      description: The country name of the address.
                      example: United States
                    note:
                      type: string
                      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
                  additionalProperties: false
                  description: The sales order's shipping address.
                purchaseOrderNumber:
                  type: string
                  maxLength: 25
                  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
                termsId:
                  type: string
                  description: >-
                    The sales order's payment terms, defining when payment is
                    due and any applicable discounts.
                  example: 80000001-1234567890
                dueDate:
                  type: string
                  format: date
                  description: >-
                    The date by which this sales order must be paid, in ISO 8601
                    format (YYYY-MM-DD).
                  example: '2024-10-31'
                salesRepresentativeId:
                  type: string
                  description: >-
                    The sales order's sales representative. Sales
                    representatives can be employees, vendors, or other names in
                    QuickBooks.
                  example: 80000001-1234567890
                shipmentOrigin:
                  type: string
                  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:
                  type: string
                  format: date
                  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'
                shippingMethodId:
                  type: string
                  description: >-
                    The shipping method used for this sales order, such as
                    standard mail or overnight delivery.
                  example: 80000001-1234567890
                salesTaxItemId:
                  type: string
                  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
                isManuallyClosed:
                  type: boolean
                  description: >-
                    Indicates whether this sales order has been manually marked
                    as closed, even if it has not been invoiced.
                  example: true
                  default: false
                memo:
                  type: string
                  description: A memo or note for this sales order.
                  example: Customer requested rush delivery
                customerMessageId:
                  type: string
                  description: The message to display to the customer on the sales order.
                  example: 80000001-1234567890
                isQueuedForPrint:
                  type: boolean
                  description: >-
                    Indicates whether this sales order is included in the queue
                    of documents for QuickBooks to print.
                  example: true
                isQueuedForEmail:
                  type: boolean
                  description: >-
                    Indicates whether this sales order is included in the queue
                    of documents for QuickBooks to email to the customer.
                  example: true
                salesTaxCodeId:
                  type: string
                  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. If QuickBooks is not set up to charge sales tax
                    (via the "Do You Charge Sales Tax?" preference), it will
                    assign the default non-taxable code to all sales.
                  example: 80000001-1234567890
                otherCustomField:
                  type: string
                  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
                exchangeRate:
                  type: number
                  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
                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:
                  type: array
                  items:
                    type: object
                    properties:
                      itemId:
                        type: string
                        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
                      description:
                        type: string
                        description: A description of this sales order line.
                        example: Widget Model X100 - Blue
                      quantity:
                        type: number
                        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:
                        type: string
                        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
                      rate:
                        type: string
                        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:
                        type: string
                        description: >-
                          The price of this sales order line expressed as a
                          percentage. Typically used for discount or markup
                          items.
                        example: '10.5'
                      priceLevelId:
                        type: string
                        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
                      classId:
                        type: string
                        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
                      amount:
                        type: string
                        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'
                      priceRuleConflictStrategy:
                        type: string
                        enum:
                          - base_price
                          - zero
                        description: >-
                          Specifies how to resolve price rule conflicts when
                          adding or modifying this sales order line.
                        example: base_price
                      inventorySiteId:
                        type: string
                        description: >-
                          The site location where inventory for the item
                          associated with this sales order line is stored.
                        example: 80000001-1234567890
                      inventorySiteLocationId:
                        type: string
                        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
                      serialNumber:
                        type: string
                        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:
                        type: string
                        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
                      salesTaxCodeId:
                        type: string
                        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. If QuickBooks is not set up to charge
                          sales tax (via the "Do You Charge Sales Tax?"
                          preference), it will assign the default non-taxable
                          code to all sales.
                        example: 80000001-1234567890
                      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
                        default: false
                      otherCustomField1:
                        type: string
                        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:
                        type: string
                        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:
                          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
                        minItems: 1
                        description: >-
                          The custom fields for the sales order line object,
                          added as user-defined data extensions, not included in
                          the standard QuickBooks object.
                    additionalProperties: false
                  minItems: 1
                  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.
                lineGroups:
                  type: array
                  items:
                    type: object
                    properties:
                      itemGroupId:
                        type: string
                        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
                      quantity:
                        type: number
                        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:
                        type: string
                        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
                      inventorySiteId:
                        type: string
                        description: >-
                          The site location where inventory for the item group
                          associated with this sales order line group is stored.
                        example: 80000001-1234567890
                      inventorySiteLocationId:
                        type: string
                        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
                      customFields:
                        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
                        minItems: 1
                        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:
                      - itemGroupId
                    additionalProperties: false
                  minItems: 1
                  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.
                salesChannelName:
                  type: string
                  enum:
                    - blank
                    - ecommerce
                  description: The type of the sales channel for this sales order.
                  example: ecommerce
                salesStoreName:
                  type: string
                  description: The name of the sales store for this sales order.
                  example: Store 1
                salesStoreType:
                  type: string
                  description: The type of the sales store for this sales order.
                  example: Retail
              required:
                - customerId
                - transactionDate
              additionalProperties: false
      responses:
        '200':
          description: Returns the newly created sales order.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the sales order to
            retrieve.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the sales order to
              retrieve.
            example: 123ABC-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns the specified sales order.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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.
      security:
        - BearerAuth: []
      parameters:
        - in: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the sales order to
            update.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the sales order to
              update.
            example: 123ABC-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      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:
                  type: string
                  description: >-
                    The customer or customer-job associated with this sales
                    order.
                  example: 80000001-1234567890
                classId:
                  type: string
                  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
                documentTemplateId:
                  type: string
                  description: >-
                    The predefined template in QuickBooks that determines the
                    layout and formatting for this sales order when printed or
                    displayed.
                  example: 80000001-1234567890
                transactionDate:
                  type: string
                  format: date
                  description: >-
                    The date of this sales order, in ISO 8601 format
                    (YYYY-MM-DD).
                  example: '2024-10-01'
                refNumber:
                  type: string
                  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:
                  type: object
                  properties:
                    line1:
                      type: string
                      maxLength: 41
                      description: >-
                        The first line of the address (e.g., street, PO Box, or
                        company name).


                        Maximum length: 41 characters.
                      example: Conductor Labs Inc.
                    line2:
                      type: string
                      maxLength: 41
                      description: >-
                        The second line of the address, if needed (e.g.,
                        apartment, suite, unit, or building).


                        Maximum length: 41 characters.
                      example: 540 Market St.
                    line3:
                      type: string
                      maxLength: 41
                      description: |-
                        The third line of the address, if needed.

                        Maximum length: 41 characters.
                      example: Suite 100
                    line4:
                      type: string
                      maxLength: 41
                      description: |-
                        The fourth line of the address, if needed.

                        Maximum length: 41 characters.
                      example: ''
                    line5:
                      type: string
                      maxLength: 41
                      description: |-
                        The fifth line of the address, if needed.

                        Maximum length: 41 characters.
                      example: ''
                    city:
                      type: string
                      maxLength: 31
                      description: >-
                        The city, district, suburb, town, or village name of the
                        address.


                        Maximum length: 31 characters.
                      example: San Francisco
                    state:
                      type: string
                      maxLength: 21
                      description: >-
                        The state, county, province, or region name of the
                        address.


                        Maximum length: 21 characters.
                      example: CA
                    postalCode:
                      type: string
                      maxLength: 13
                      description: |-
                        The postal code or ZIP code of the address.

                        Maximum length: 13 characters.
                      example: '94110'
                    country:
                      type: string
                      description: The country name of the address.
                      example: United States
                    note:
                      type: string
                      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
                  additionalProperties: false
                  description: The sales order's billing address.
                shippingAddress:
                  type: object
                  properties:
                    line1:
                      type: string
                      maxLength: 41
                      description: >-
                        The first line of the address (e.g., street, PO Box, or
                        company name).


                        Maximum length: 41 characters.
                      example: Conductor Labs Inc.
                    line2:
                      type: string
                      maxLength: 41
                      description: >-
                        The second line of the address, if needed (e.g.,
                        apartment, suite, unit, or building).


                        Maximum length: 41 characters.
                      example: 540 Market St.
                    line3:
                      type: string
                      maxLength: 41
                      description: |-
                        The third line of the address, if needed.

                        Maximum length: 41 characters.
                      example: Suite 100
                    line4:
                      type: string
                      maxLength: 41
                      description: |-
                        The fourth line of the address, if needed.

                        Maximum length: 41 characters.
                      example: ''
                    line5:
                      type: string
                      maxLength: 41
                      description: |-
                        The fifth line of the address, if needed.

                        Maximum length: 41 characters.
                      example: ''
                    city:
                      type: string
                      maxLength: 31
                      description: >-
                        The city, district, suburb, town, or village name of the
                        address.


                        Maximum length: 31 characters.
                      example: San Francisco
                    state:
                      type: string
                      maxLength: 21
                      description: >-
                        The state, county, province, or region name of the
                        address.


                        Maximum length: 21 characters.
                      example: CA
                    postalCode:
                      type: string
                      maxLength: 13
                      description: |-
                        The postal code or ZIP code of the address.

                        Maximum length: 13 characters.
                      example: '94110'
                    country:
                      type: string
                      description: The country name of the address.
                      example: United States
                    note:
                      type: string
                      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
                  additionalProperties: false
                  description: The sales order's shipping address.
                purchaseOrderNumber:
                  type: string
                  maxLength: 25
                  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
                termsId:
                  type: string
                  description: >-
                    The sales order's payment terms, defining when payment is
                    due and any applicable discounts.
                  example: 80000001-1234567890
                dueDate:
                  type: string
                  format: date
                  description: >-
                    The date by which this sales order must be paid, in ISO 8601
                    format (YYYY-MM-DD).
                  example: '2024-10-31'
                salesRepresentativeId:
                  type: string
                  description: >-
                    The sales order's sales representative. Sales
                    representatives can be employees, vendors, or other names in
                    QuickBooks.
                  example: 80000001-1234567890
                shipmentOrigin:
                  type: string
                  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:
                  type: string
                  format: date
                  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'
                shippingMethodId:
                  type: string
                  description: >-
                    The shipping method used for this sales order, such as
                    standard mail or overnight delivery.
                  example: 80000001-1234567890
                salesTaxItemId:
                  type: string
                  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
                isManuallyClosed:
                  type: boolean
                  description: >-
                    Indicates whether this sales order has been manually marked
                    as closed, even if it has not been invoiced.
                  example: true
                memo:
                  type: string
                  description: A memo or note for this sales order.
                  example: Customer requested rush delivery
                customerMessageId:
                  type: string
                  description: The message to display to the customer on the sales order.
                  example: 80000001-1234567890
                isQueuedForPrint:
                  type: boolean
                  description: >-
                    Indicates whether this sales order is included in the queue
                    of documents for QuickBooks to print.
                  example: true
                isQueuedForEmail:
                  type: boolean
                  description: >-
                    Indicates whether this sales order is included in the queue
                    of documents for QuickBooks to email to the customer.
                  example: true
                salesTaxCodeId:
                  type: string
                  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. If QuickBooks is not set up to charge sales tax
                    (via the "Do You Charge Sales Tax?" preference), it will
                    assign the default non-taxable code to all sales.
                  example: 80000001-1234567890
                otherCustomField:
                  type: string
                  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
                exchangeRate:
                  type: number
                  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
                lines:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                        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:
                        type: string
                        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
                      description:
                        type: string
                        description: A description of this sales order line.
                        example: Widget Model X100 - Blue
                      quantity:
                        type: number
                        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:
                        type: string
                        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
                      overrideUnitOfMeasureSetId:
                        type: string
                        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
                      rate:
                        type: string
                        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:
                        type: string
                        description: >-
                          The price of this sales order line expressed as a
                          percentage. Typically used for discount or markup
                          items.
                        example: '10.5'
                      priceLevelId:
                        type: string
                        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
                      classId:
                        type: string
                        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
                      amount:
                        type: string
                        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'
                      priceRuleConflictStrategy:
                        type: string
                        enum:
                          - base_price
                          - zero
                        description: >-
                          Specifies how to resolve price rule conflicts when
                          adding or modifying this sales order line.
                        example: base_price
                      inventorySiteId:
                        type: string
                        description: >-
                          The site location where inventory for the item
                          associated with this sales order line is stored.
                        example: 80000001-1234567890
                      inventorySiteLocationId:
                        type: string
                        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
                      serialNumber:
                        type: string
                        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:
                        type: string
                        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
                      salesTaxCodeId:
                        type: string
                        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. If QuickBooks is not set up to charge
                          sales tax (via the "Do You Charge Sales Tax?"
                          preference), it will assign the default non-taxable
                          code to all sales.
                        example: 80000001-1234567890
                      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:
                        type: string
                        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:
                        type: string
                        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
                    required:
                      - id
                    additionalProperties: false
                  minItems: 1
                  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.
                lineGroups:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                        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:
                        type: string
                        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
                      quantity:
                        type: number
                        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:
                        type: string
                        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
                      overrideUnitOfMeasureSetId:
                        type: string
                        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
                      lines:
                        type: array
                        items:
                          type: object
                          properties:
                            id:
                              type: string
                              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:
                              type: string
                              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
                            description:
                              type: string
                              description: A description of this sales order line.
                              example: Widget Model X100 - Blue
                            quantity:
                              type: number
                              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:
                              type: string
                              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
                            overrideUnitOfMeasureSetId:
                              type: string
                              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
                            rate:
                              type: string
                              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:
                              type: string
                              description: >-
                                The price of this sales order line expressed as
                                a percentage. Typically used for discount or
                                markup items.
                              example: '10.5'
                            priceLevelId:
                              type: string
                              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
                            classId:
                              type: string
                              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
                            amount:
                              type: string
                              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'
                            priceRuleConflictStrategy:
                              type: string
                              enum:
                                - base_price
                                - zero
                              description: >-
                                Specifies how to resolve price rule conflicts
                                when adding or modifying this sales order line.
                              example: base_price
                            inventorySiteId:
                              type: string
                              description: >-
                                The site location where inventory for the item
                                associated with this sales order line is stored.
                              example: 80000001-1234567890
                            inventorySiteLocationId:
                              type: string
                              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
                            serialNumber:
                              type: string
                              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:
                              type: string
                              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
                            salesTaxCodeId:
                              type: string
                              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. If QuickBooks is not set
                                up to charge sales tax (via the "Do You Charge
                                Sales Tax?" preference), it will assign the
                                default non-taxable code to all sales.
                              example: 80000001-1234567890
                            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:
                              type: string
                              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:
                              type: string
                              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
                          required:
                            - id
                          additionalProperties: false
                        minItems: 1
                        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.
                    required:
                      - id
                    additionalProperties: false
                  minItems: 1
                  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.
                salesChannelName:
                  type: string
                  enum:
                    - blank
                    - ecommerce
                  description: The type of the sales channel for this sales order.
                  example: ecommerce
                salesStoreName:
                  type: string
                  description: The name of the sales store for this sales order.
                  example: Store 1
                salesStoreType:
                  type: string
                  description: The type of the sales store for this sales order.
                  example: Retail
              required:
                - revisionNumber
              additionalProperties: false
      responses:
        '200':
          description: Returns the updated sales order.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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 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: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the sales order to
            delete.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the sales order to
              delete.
            example: 123ABC-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: >-
            Returns a confirmation of the deletion with the ID of the deleted
            sales order.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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:
                    type: string
                    const: qbd_sales_order
                    description: >-
                      The type of object. This value is always
                      `"qbd_sales_order"`.
                    example: qbd_sales_order
                  refNumber:
                    type:
                      - string
                      - '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: query
          name: ids
          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.
          schema:
            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.
            example:
              - 123ABC-1234567890
        - in: query
          name: refNumbers
          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.
          schema:
            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.
            example:
              - SALES RECEIPT-1234
        - in: query
          name: limit
          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.
          schema:
            type: integer
            minimum: 1
            maximum: 150
            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
        - in: query
          name: cursor
          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.
          schema:
            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.
            example: 12345678-abcd-abcd-example-1234567890ab
        - in: query
          name: updatedAfter
          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.
          schema:
            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.
            example: 2025-01-01T12:34:56.000Z
        - in: query
          name: updatedBefore
          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.
          schema:
            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.
            example: 2025-02-01T12:34:56.000Z
        - in: query
          name: transactionDateFrom
          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`).
          schema:
            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`).
            example: '2025-01-01'
        - in: query
          name: transactionDateTo
          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`).
          schema:
            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`).
            example: '2025-02-01'
        - in: query
          name: customerIds
          description: Filter for sales receipts created for these customers.
          schema:
            type: array
            items:
              type: string
            description: Filter for sales receipts created for these customers.
            example:
              - 80000001-1234567890
        - in: query
          name: accountIds
          description: Filter for sales receipts associated with these accounts.
          schema:
            type: array
            items:
              type: string
            description: Filter for sales receipts associated with these accounts.
            example:
              - 80000001-1234567890
        - in: query
          name: refNumberContains
          description: >-
            Filter for sales receipts whose `refNumber` contains this substring.


            **NOTE**: If you use this parameter, you cannot also use
            `refNumberStartsWith` or `refNumberEndsWith`.
          schema:
            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`.
            example: RECEIPT-1234
        - in: query
          name: refNumberStartsWith
          description: >-
            Filter for sales receipts whose `refNumber` starts with this
            substring.


            **NOTE**: If you use this parameter, you cannot also use
            `refNumberContains` or `refNumberEndsWith`.
          schema:
            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`.
            example: RECEIPT
        - in: query
          name: refNumberEndsWith
          description: >-
            Filter for sales receipts whose `refNumber` ends with this
            substring.


            **NOTE**: If you use this parameter, you cannot also use
            `refNumberContains` or `refNumberStartsWith`.
          schema:
            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`.
            example: '1234'
        - in: query
          name: refNumberFrom
          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.
          schema:
            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.
            example: RECEIPT-0001
        - in: query
          name: refNumberTo
          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.
          schema:
            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.
            example: RECEIPT-9999
        - in: query
          name: currencyIds
          description: Filter for sales receipts in these currencies.
          schema:
            type: array
            items:
              type: string
            description: Filter for sales receipts in these currencies.
            example:
              - 80000001-1234567890
        - in: query
          name: includeLineItems
          description: Whether to include line items in the response. Defaults to `true`.
          schema:
            type: boolean
            description: Whether to include line items in the response. Defaults to `true`.
            example: true
            default: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns a list of sales receipts.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          content:
            application/json:
              schema:
                type: object
                properties:
                  objectType:
                    type: string
                    const: list
                    description: The type of object. This value is always `"list"`.
                    example: 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:
                    type:
                      - string
                      - '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:
                    type:
                      - number
                      - '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
          description: The ID of the End-User to receive this request.
          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
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                customerId:
                  type: string
                  description: >-
                    The customer or customer-job to which the payment for this
                    sales receipt is credited.
                  example: 80000001-1234567890
                classId:
                  type: string
                  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
                documentTemplateId:
                  type: string
                  description: >-
                    The predefined template in QuickBooks that determines the
                    layout and formatting for this sales receipt when printed or
                    displayed.
                  example: 80000001-1234567890
                transactionDate:
                  type: string
                  format: date
                  description: >-
                    The date of this sales receipt, in ISO 8601 format
                    (YYYY-MM-DD).
                  example: '2024-10-01'
                refNumber:
                  type: string
                  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).
                  example: RECEIPT-1234
                billingAddress:
                  type: object
                  properties:
                    line1:
                      type: string
                      maxLength: 41
                      description: >-
                        The first line of the address (e.g., street, PO Box, or
                        company name).


                        Maximum length: 41 characters.
                      example: Conductor Labs Inc.
                    line2:
                      type: string
                      maxLength: 41
                      description: >-
                        The second line of the address, if needed (e.g.,
                        apartment, suite, unit, or building).


                        Maximum length: 41 characters.
                      example: 540 Market St.
                    line3:
                      type: string
                      maxLength: 41
                      description: |-
                        The third line of the address, if needed.

                        Maximum length: 41 characters.
                      example: Suite 100
                    line4:
                      type: string
                      maxLength: 41
                      description: |-
                        The fourth line of the address, if needed.

                        Maximum length: 41 characters.
                      example: ''
                    line5:
                      type: string
                      maxLength: 41
                      description: |-
                        The fifth line of the address, if needed.

                        Maximum length: 41 characters.
                      example: ''
                    city:
                      type: string
                      maxLength: 31
                      description: >-
                        The city, district, suburb, town, or village name of the
                        address.


                        Maximum length: 31 characters.
                      example: San Francisco
                    state:
                      type: string
                      maxLength: 21
                      description: >-
                        The state, county, province, or region name of the
                        address.


                        Maximum length: 21 characters.
                      example: CA
                    postalCode:
                      type: string
                      maxLength: 13
                      description: |-
                        The postal code or ZIP code of the address.

                        Maximum length: 13 characters.
                      example: '94110'
                    country:
                      type: string
                      description: The country name of the address.
                      example: United States
                    note:
                      type: string
                      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
                  additionalProperties: false
                  description: The sales receipt's billing address.
                shippingAddress:
                  type: object
                  properties:
                    line1:
                      type: string
                      maxLength: 41
                      description: >-
                        The first line of the address (e.g., street, PO Box, or
                        company name).


                        Maximum length: 41 characters.
                      example: Conductor Labs Inc.
                    line2:
                      type: string
                      maxLength: 41
                      description: >-
                        The second line of the address, if needed (e.g.,
                        apartment, suite, unit, or building).


                        Maximum length: 41 characters.
                      example: 540 Market St.
                    line3:
                      type: string
                      maxLength: 41
                      description: |-
                        The third line of the address, if needed.

                        Maximum length: 41 characters.
                      example: Suite 100
                    line4:
                      type: string
                      maxLength: 41
                      description: |-
                        The fourth line of the address, if needed.

                        Maximum length: 41 characters.
                      example: ''
                    line5:
                      type: string
                      maxLength: 41
                      description: |-
                        The fifth line of the address, if needed.

                        Maximum length: 41 characters.
                      example: ''
                    city:
                      type: string
                      maxLength: 31
                      description: >-
                        The city, district, suburb, town, or village name of the
                        address.


                        Maximum length: 31 characters.
                      example: San Francisco
                    state:
                      type: string
                      maxLength: 21
                      description: >-
                        The state, county, province, or region name of the
                        address.


                        Maximum length: 21 characters.
                      example: CA
                    postalCode:
                      type: string
                      maxLength: 13
                      description: |-
                        The postal code or ZIP code of the address.

                        Maximum length: 13 characters.
                      example: '94110'
                    country:
                      type: string
                      description: The country name of the address.
                      example: United States
                    note:
                      type: string
                      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
                  additionalProperties: false
                  description: The sales receipt's shipping address.
                isPending:
                  type: boolean
                  description: Indicates whether this sales receipt has not been completed.
                  example: false
                checkNumber:
                  type: string
                  description: The check number of a check received for this sales receipt.
                  example: '1234567890'
                paymentMethodId:
                  type: string
                  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
                dueDate:
                  type: string
                  format: date
                  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'
                salesRepresentativeId:
                  type: string
                  description: >-
                    The sales receipt's sales representative. Sales
                    representatives can be employees, vendors, or other names in
                    QuickBooks.
                  example: 80000001-1234567890
                shippingDate:
                  type: string
                  format: date
                  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'
                shippingMethodId:
                  type: string
                  description: >-
                    The shipping method used for this sales receipt, such as
                    standard mail or overnight delivery.
                  example: 80000001-1234567890
                shipmentOrigin:
                  type: string
                  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
                salesTaxItemId:
                  type: string
                  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
                memo:
                  type: string
                  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
                customerMessageId:
                  type: string
                  description: The message to display to the customer on the sales receipt.
                  example: 80000001-1234567890
                isQueuedForPrint:
                  type: boolean
                  description: >-
                    Indicates whether this sales receipt is included in the
                    queue of documents for QuickBooks to print.
                  example: true
                isQueuedForEmail:
                  type: boolean
                  description: >-
                    Indicates whether this sales receipt is included in the
                    queue of documents for QuickBooks to email to the customer.
                  example: true
                salesTaxCodeId:
                  type: string
                  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. If QuickBooks is not set up to charge sales tax
                    (via the "Do You Charge Sales Tax?" preference), it will
                    assign the default non-taxable code to all sales.
                  example: 80000001-1234567890
                depositToAccountId:
                  type: string
                  description: >-
                    The account where the funds for this sales receipt will be
                    or have been deposited.
                  example: 80000001-1234567890
                creditCardTransaction:
                  type: object
                  properties:
                    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:
                          type: string
                          description: The cardholder's name on the card.
                          example: John Doe
                        address:
                          type: string
                          description: The card's billing address.
                          example: 1234 Main St, Anytown, USA, 12345
                        postalCode:
                          type: string
                          description: The card's billing address ZIP or postal code.
                          example: '12345'
                        commercialCardCode:
                          type: string
                          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:
                          type: string
                          enum:
                            - card_not_present
                            - card_present
                          description: >-
                            Indicates whether this credit card transaction came
                            from a card swipe (`card_present`) or not
                            (`card_not_present`).
                          example: card_not_present
                          default: card_not_present
                        transactionType:
                          type: string
                          enum:
                            - authorization
                            - capture
                            - charge
                            - refund
                            - voice_authorization
                          description: >-
                            The QBMS transaction type from which the current
                            transaction data originated.
                          example: charge
                      required:
                        - number
                        - expirationMonth
                        - expirationYear
                        - name
                      additionalProperties: false
                      description: >-
                        The transaction request data originally supplied for
                        this credit card transaction when using QuickBooks
                        Merchant Services (QBMS).
                    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:
                          type: string
                          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:
                          type: string
                          enum:
                            - fail
                            - not_available
                            - pass
                          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:
                          type: string
                          enum:
                            - fail
                            - not_available
                            - pass
                          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:
                          type: string
                          enum:
                            - fail
                            - not_available
                            - pass
                          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:
                          type: string
                          description: >-
                            An internal ID returned by QuickBooks Merchant
                            Services (QBMS) from the transaction request, needed
                            for the QuickBooks reconciliation feature.
                          example: '1234567890'
                        paymentGroupingCode:
                          type: number
                          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:
                          type: number
                          description: >-
                            An internal value for this credit card transaction,
                            needed for the QuickBooks reconciliation feature.
                          example: 2
                        clientTransactionId:
                          type: string
                          description: >-
                            A value returned from QBMS transactions for future
                            use by the QuickBooks Reconciliation feature.
                          example: '1234567890'
                      required:
                        - statusCode
                        - statusMessage
                        - creditCardTransactionId
                        - merchantAccountNumber
                        - paymentStatus
                        - transactionAuthorizedAt
                      additionalProperties: false
                      description: >-
                        The transaction response data for this credit card
                        transaction when using QuickBooks Merchant Services
                        (QBMS).
                  additionalProperties: false
                  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.
                otherCustomField:
                  type: string
                  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
                exchangeRate:
                  type: number
                  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
                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:
                  type: array
                  items:
                    type: object
                    properties:
                      itemId:
                        type: string
                        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
                      description:
                        type: string
                        description: A description of this sales receipt line.
                        example: New office chair
                      quantity:
                        type: number
                        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:
                        type: string
                        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
                      rate:
                        type: string
                        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:
                        type: string
                        description: >-
                          The price of this sales receipt line expressed as a
                          percentage. Typically used for discount or markup
                          items.
                        example: '10.5'
                      priceLevelId:
                        type: string
                        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
                      classId:
                        type: string
                        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
                      amount:
                        type: string
                        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'
                      priceRuleConflictStrategy:
                        type: string
                        enum:
                          - base_price
                          - zero
                        description: >-
                          Specifies how to resolve price rule conflicts when
                          adding or modifying this sales receipt line.
                        example: base_price
                      inventorySiteId:
                        type: string
                        description: >-
                          The site location where inventory for the item
                          associated with this sales receipt line is stored.
                        example: 80000001-1234567890
                      inventorySiteLocationId:
                        type: string
                        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
                      serialNumber:
                        type: string
                        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:
                        type: string
                        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
                      serviceDate:
                        type: string
                        format: date
                        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'
                      salesTaxCodeId:
                        type: string
                        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. If QuickBooks is not set up to charge
                          sales tax (via the "Do You Charge Sales Tax?"
                          preference), it will assign the default non-taxable
                          code to all sales.
                        example: 80000001-1234567890
                      overrideItemAccountId:
                        type: string
                        description: >-
                          The account to use for this sales receipt line,
                          overriding the default account associated with the
                          item.
                        example: 80000001-1234567890
                      otherCustomField1:
                        type: string
                        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:
                        type: string
                        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:
                        type: object
                        properties:
                          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:
                                type: string
                                description: The cardholder's name on the card.
                                example: John Doe
                              address:
                                type: string
                                description: The card's billing address.
                                example: 1234 Main St, Anytown, USA, 12345
                              postalCode:
                                type: string
                                description: The card's billing address ZIP or postal code.
                                example: '12345'
                              commercialCardCode:
                                type: string
                                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:
                                type: string
                                enum:
                                  - card_not_present
                                  - card_present
                                description: >-
                                  Indicates whether this credit card transaction
                                  came from a card swipe (`card_present`) or not
                                  (`card_not_present`).
                                example: card_not_present
                                default: card_not_present
                              transactionType:
                                type: string
                                enum:
                                  - authorization
                                  - capture
                                  - charge
                                  - refund
                                  - voice_authorization
                                description: >-
                                  The QBMS transaction type from which the
                                  current transaction data originated.
                                example: charge
                            required:
                              - number
                              - expirationMonth
                              - expirationYear
                              - name
                            additionalProperties: false
                            description: >-
                              The transaction request data originally supplied
                              for this credit card transaction when using
                              QuickBooks Merchant Services (QBMS).
                          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:
                                type: string
                                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:
                                type: string
                                enum:
                                  - fail
                                  - not_available
                                  - pass
                                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:
                                type: string
                                enum:
                                  - fail
                                  - not_available
                                  - pass
                                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:
                                type: string
                                enum:
                                  - fail
                                  - not_available
                                  - pass
                                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:
                                type: string
                                description: >-
                                  An internal ID returned by QuickBooks Merchant
                                  Services (QBMS) from the transaction request,
                                  needed for the QuickBooks reconciliation
                                  feature.
                                example: '1234567890'
                              paymentGroupingCode:
                                type: number
                                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:
                                type: number
                                description: >-
                                  An internal value for this credit card
                                  transaction, needed for the QuickBooks
                                  reconciliation feature.
                                example: 2
                              clientTransactionId:
                                type: string
                                description: >-
                                  A value returned from QBMS transactions for
                                  future use by the QuickBooks Reconciliation
                                  feature.
                                example: '1234567890'
                            required:
                              - statusCode
                              - statusMessage
                              - creditCardTransactionId
                              - merchantAccountNumber
                              - paymentStatus
                              - transactionAuthorizedAt
                            additionalProperties: false
                            description: >-
                              The transaction response data for this credit card
                              transaction when using QuickBooks Merchant
                              Services (QBMS).
                        additionalProperties: false
                        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.
                      customFields:
                        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
                        minItems: 1
                        description: >-
                          The custom fields for the sales receipt line object,
                          added as user-defined data extensions, not included in
                          the standard QuickBooks object.
                    additionalProperties: false
                  minItems: 1
                  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.
                lineGroups:
                  type: array
                  items:
                    type: object
                    properties:
                      itemGroupId:
                        type: string
                        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
                      quantity:
                        type: number
                        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:
                        type: string
                        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
                      inventorySiteId:
                        type: string
                        description: >-
                          The site location where inventory for the item group
                          associated with this sales receipt line group is
                          stored.
                        example: 80000001-1234567890
                      inventorySiteLocationId:
                        type: string
                        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
                      customFields:
                        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
                        minItems: 1
                        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:
                      - itemGroupId
                    additionalProperties: false
                  minItems: 1
                  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.
              required:
                - transactionDate
              additionalProperties: false
      responses:
        '200':
          description: Returns the newly created sales receipt.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the sales receipt to
            retrieve.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the sales receipt to
              retrieve.
            example: 123ABC-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns the specified sales receipt.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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.
      security:
        - BearerAuth: []
      parameters:
        - in: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the sales receipt to
            update.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the sales receipt to
              update.
            example: 123ABC-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      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:
                  type: string
                  description: >-
                    The customer or customer-job to which the payment for this
                    sales receipt is credited.
                  example: 80000001-1234567890
                classId:
                  type: string
                  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
                documentTemplateId:
                  type: string
                  description: >-
                    The predefined template in QuickBooks that determines the
                    layout and formatting for this sales receipt when printed or
                    displayed.
                  example: 80000001-1234567890
                transactionDate:
                  type: string
                  format: date
                  description: >-
                    The date of this sales receipt, in ISO 8601 format
                    (YYYY-MM-DD).
                  example: '2024-10-01'
                refNumber:
                  type: string
                  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:
                  type: object
                  properties:
                    line1:
                      type: string
                      maxLength: 41
                      description: >-
                        The first line of the address (e.g., street, PO Box, or
                        company name).


                        Maximum length: 41 characters.
                      example: Conductor Labs Inc.
                    line2:
                      type: string
                      maxLength: 41
                      description: >-
                        The second line of the address, if needed (e.g.,
                        apartment, suite, unit, or building).


                        Maximum length: 41 characters.
                      example: 540 Market St.
                    line3:
                      type: string
                      maxLength: 41
                      description: |-
                        The third line of the address, if needed.

                        Maximum length: 41 characters.
                      example: Suite 100
                    line4:
                      type: string
                      maxLength: 41
                      description: |-
                        The fourth line of the address, if needed.

                        Maximum length: 41 characters.
                      example: ''
                    line5:
                      type: string
                      maxLength: 41
                      description: |-
                        The fifth line of the address, if needed.

                        Maximum length: 41 characters.
                      example: ''
                    city:
                      type: string
                      maxLength: 31
                      description: >-
                        The city, district, suburb, town, or village name of the
                        address.


                        Maximum length: 31 characters.
                      example: San Francisco
                    state:
                      type: string
                      maxLength: 21
                      description: >-
                        The state, county, province, or region name of the
                        address.


                        Maximum length: 21 characters.
                      example: CA
                    postalCode:
                      type: string
                      maxLength: 13
                      description: |-
                        The postal code or ZIP code of the address.

                        Maximum length: 13 characters.
                      example: '94110'
                    country:
                      type: string
                      description: The country name of the address.
                      example: United States
                    note:
                      type: string
                      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
                  additionalProperties: false
                  description: The sales receipt's billing address.
                shippingAddress:
                  type: object
                  properties:
                    line1:
                      type: string
                      maxLength: 41
                      description: >-
                        The first line of the address (e.g., street, PO Box, or
                        company name).


                        Maximum length: 41 characters.
                      example: Conductor Labs Inc.
                    line2:
                      type: string
                      maxLength: 41
                      description: >-
                        The second line of the address, if needed (e.g.,
                        apartment, suite, unit, or building).


                        Maximum length: 41 characters.
                      example: 540 Market St.
                    line3:
                      type: string
                      maxLength: 41
                      description: |-
                        The third line of the address, if needed.

                        Maximum length: 41 characters.
                      example: Suite 100
                    line4:
                      type: string
                      maxLength: 41
                      description: |-
                        The fourth line of the address, if needed.

                        Maximum length: 41 characters.
                      example: ''
                    line5:
                      type: string
                      maxLength: 41
                      description: |-
                        The fifth line of the address, if needed.

                        Maximum length: 41 characters.
                      example: ''
                    city:
                      type: string
                      maxLength: 31
                      description: >-
                        The city, district, suburb, town, or village name of the
                        address.


                        Maximum length: 31 characters.
                      example: San Francisco
                    state:
                      type: string
                      maxLength: 21
                      description: >-
                        The state, county, province, or region name of the
                        address.


                        Maximum length: 21 characters.
                      example: CA
                    postalCode:
                      type: string
                      maxLength: 13
                      description: |-
                        The postal code or ZIP code of the address.

                        Maximum length: 13 characters.
                      example: '94110'
                    country:
                      type: string
                      description: The country name of the address.
                      example: United States
                    note:
                      type: string
                      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
                  additionalProperties: false
                  description: The sales receipt's shipping address.
                isPending:
                  type: boolean
                  description: Indicates whether this sales receipt has not been completed.
                  example: false
                checkNumber:
                  type: string
                  description: The check number of a check received for this sales receipt.
                  example: '1234567890'
                paymentMethodId:
                  type: string
                  description: >-
                    The sales receipt's payment method (e.g., cash, check,
                    credit card).
                  example: 80000001-1234567890
                dueDate:
                  type: string
                  format: date
                  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'
                salesRepresentativeId:
                  type: string
                  description: >-
                    The sales receipt's sales representative. Sales
                    representatives can be employees, vendors, or other names in
                    QuickBooks.
                  example: 80000001-1234567890
                shippingDate:
                  type: string
                  format: date
                  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'
                shippingMethodId:
                  type: string
                  description: >-
                    The shipping method used for this sales receipt, such as
                    standard mail or overnight delivery.
                  example: 80000001-1234567890
                shipmentOrigin:
                  type: string
                  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
                salesTaxItemId:
                  type: string
                  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
                memo:
                  type: string
                  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
                customerMessageId:
                  type: string
                  description: The message to display to the customer on the sales receipt.
                  example: 80000001-1234567890
                isQueuedForPrint:
                  type: boolean
                  description: >-
                    Indicates whether this sales receipt is included in the
                    queue of documents for QuickBooks to print.
                  example: true
                isQueuedForEmail:
                  type: boolean
                  description: >-
                    Indicates whether this sales receipt is included in the
                    queue of documents for QuickBooks to email to the customer.
                  example: true
                salesTaxCodeId:
                  type: string
                  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. If QuickBooks is not set up to charge sales tax
                    (via the "Do You Charge Sales Tax?" preference), it will
                    assign the default non-taxable code to all sales.
                  example: 80000001-1234567890
                depositToAccountId:
                  type: string
                  description: >-
                    The account where the funds for this sales receipt will be
                    or have been deposited.
                  example: 80000001-1234567890
                otherCustomField:
                  type: string
                  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
                exchangeRate:
                  type: number
                  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
                lines:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                        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:
                        type: string
                        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
                      description:
                        type: string
                        description: A description of this sales receipt line.
                        example: New office chair
                      quantity:
                        type: number
                        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:
                        type: string
                        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
                      overrideUnitOfMeasureSetId:
                        type: string
                        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
                      rate:
                        type: string
                        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:
                        type: string
                        description: >-
                          The price of this sales receipt line expressed as a
                          percentage. Typically used for discount or markup
                          items.
                        example: '10.5'
                      priceLevelId:
                        type: string
                        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
                      classId:
                        type: string
                        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
                      amount:
                        type: string
                        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'
                      priceRuleConflictStrategy:
                        type: string
                        enum:
                          - base_price
                          - zero
                        description: >-
                          Specifies how to resolve price rule conflicts when
                          adding or modifying this sales receipt line.
                        example: base_price
                      inventorySiteId:
                        type: string
                        description: >-
                          The site location where inventory for the item
                          associated with this sales receipt line is stored.
                        example: 80000001-1234567890
                      inventorySiteLocationId:
                        type: string
                        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
                      serialNumber:
                        type: string
                        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:
                        type: string
                        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
                      serviceDate:
                        type: string
                        format: date
                        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'
                      salesTaxCodeId:
                        type: string
                        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. If QuickBooks is not set up to charge
                          sales tax (via the "Do You Charge Sales Tax?"
                          preference), it will assign the default non-taxable
                          code to all sales.
                        example: 80000001-1234567890
                      overrideItemAccountId:
                        type: string
                        description: >-
                          The account to use for this sales receipt line,
                          overriding the default account associated with the
                          item.
                        example: 80000001-1234567890
                      otherCustomField1:
                        type: string
                        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:
                        type: string
                        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
                    required:
                      - id
                    additionalProperties: false
                  minItems: 1
                  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.
                lineGroups:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                        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:
                        type: string
                        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
                      quantity:
                        type: number
                        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:
                        type: string
                        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
                      overrideUnitOfMeasureSetId:
                        type: string
                        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
                      lines:
                        type: array
                        items:
                          type: object
                          properties:
                            id:
                              type: string
                              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:
                              type: string
                              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
                            description:
                              type: string
                              description: A description of this sales receipt line.
                              example: New office chair
                            quantity:
                              type: number
                              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:
                              type: string
                              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
                            overrideUnitOfMeasureSetId:
                              type: string
                              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
                            rate:
                              type: string
                              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:
                              type: string
                              description: >-
                                The price of this sales receipt line expressed
                                as a percentage. Typically used for discount or
                                markup items.
                              example: '10.5'
                            priceLevelId:
                              type: string
                              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
                            classId:
                              type: string
                              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
                            amount:
                              type: string
                              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'
                            priceRuleConflictStrategy:
                              type: string
                              enum:
                                - base_price
                                - zero
                              description: >-
                                Specifies how to resolve price rule conflicts
                                when adding or modifying this sales receipt
                                line.
                              example: base_price
                            inventorySiteId:
                              type: string
                              description: >-
                                The site location where inventory for the item
                                associated with this sales receipt line is
                                stored.
                              example: 80000001-1234567890
                            inventorySiteLocationId:
                              type: string
                              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
                            serialNumber:
                              type: string
                              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:
                              type: string
                              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
                            serviceDate:
                              type: string
                              format: date
                              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'
                            salesTaxCodeId:
                              type: string
                              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. If QuickBooks is not set
                                up to charge sales tax (via the "Do You Charge
                                Sales Tax?" preference), it will assign the
                                default non-taxable code to all sales.
                              example: 80000001-1234567890
                            overrideItemAccountId:
                              type: string
                              description: >-
                                The account to use for this sales receipt line,
                                overriding the default account associated with
                                the item.
                              example: 80000001-1234567890
                            otherCustomField1:
                              type: string
                              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:
                              type: string
                              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
                          required:
                            - id
                          additionalProperties: false
                        minItems: 1
                        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.
                    required:
                      - id
                    additionalProperties: false
                  minItems: 1
                  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.
              required:
                - revisionNumber
              additionalProperties: false
      responses:
        '200':
          description: Returns the updated sales receipt.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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 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: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the sales receipt to
            delete.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the sales receipt to
              delete.
            example: 123ABC-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: >-
            Returns a confirmation of the deletion with the ID of the deleted
            sales receipt.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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:
                    type: string
                    const: qbd_sales_receipt
                    description: >-
                      The type of object. This value is always
                      `"qbd_sales_receipt"`.
                    example: qbd_sales_receipt
                  refNumber:
                    type:
                      - string
                      - '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-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: query
          name: ids
          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.
          schema:
            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.
            example:
              - 80000001-1234567890
        - in: query
          name: names
          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.
          schema:
            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.
            example:
              - John Doe
        - in: query
          name: limit
          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.
          schema:
            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.
            example: 10
        - in: query
          name: status
          description: Filter for sales representatives that are active, inactive, or both.
          schema:
            type: string
            enum:
              - active
              - all
              - inactive
            default: active
            description: >-
              Filter for sales representatives that are active, inactive, or
              both.
            example: active
        - in: query
          name: updatedAfter
          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.
          schema:
            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.
            example: 2025-01-01T12:34:56.000Z
        - in: query
          name: updatedBefore
          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.
          schema:
            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.
            example: 2025-02-01T12:34:56.000Z
        - in: query
          name: nameContains
          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`.
          schema:
            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`.
            example: ABC
        - in: query
          name: nameStartsWith
          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`.
          schema:
            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`.
            example: ABC
        - in: query
          name: nameEndsWith
          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`.
          schema:
            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`.
            example: ABC
        - in: query
          name: nameFrom
          description: >-
            Filter for sales representatives whose `name` is alphabetically
            greater than or equal to this value.
          schema:
            type: string
            description: >-
              Filter for sales representatives whose `name` is alphabetically
              greater than or equal to this value.
            example: A
        - in: query
          name: nameTo
          description: >-
            Filter for sales representatives whose `name` is alphabetically less
            than or equal to this value.
          schema:
            type: string
            description: >-
              Filter for sales representatives whose `name` is alphabetically
              less than or equal to this value.
            example: Z
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns a list of sales representatives.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          content:
            application/json:
              schema:
                type: object
                properties:
                  objectType:
                    type: string
                    const: list
                    description: The type of object. This value is always `"list"`.
                    example: 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
          description: The ID of the End-User to receive this request.
          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
      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:
                  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
                  default: true
                entityId:
                  type: string
                  description: >-
                    The sales representative's corresponding person entity in
                    QuickBooks, stored as either an employee, vendor, or
                    other-name entry.
                  example: 80000001-1234567890
              required:
                - initial
                - entityId
              additionalProperties: false
      responses:
        '200':
          description: Returns the newly created sales representative.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the sales
            representative to retrieve.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the sales
              representative to retrieve.
            example: 80000001-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns the specified sales representative.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the sales
            representative to update.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the sales
              representative to update.
            example: 80000001-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      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:
                  type: string
                  maxLength: 5
                  description: |-
                    The initials of this sales representative's name.

                    Maximum length: 5 characters.
                  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
                entityId:
                  type: string
                  description: >-
                    The sales representative's corresponding person entity in
                    QuickBooks, stored as either an employee, vendor, or
                    other-name entry.
                  example: 80000001-1234567890
              required:
                - revisionNumber
              additionalProperties: false
      responses:
        '200':
          description: Returns the updated sales representative.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: query
          name: ids
          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.
          schema:
            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.
            example:
              - 80000001-1234567890
        - in: query
          name: names
          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.
          schema:
            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.
            example:
              - Tax
        - in: query
          name: limit
          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.
          schema:
            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.
            example: 10
        - in: query
          name: status
          description: Filter for sales-tax codes that are active, inactive, or both.
          schema:
            type: string
            enum:
              - active
              - all
              - inactive
            default: active
            description: Filter for sales-tax codes that are active, inactive, or both.
            example: active
        - in: query
          name: updatedAfter
          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.
          schema:
            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.
            example: 2025-01-01T12:34:56.000Z
        - in: query
          name: updatedBefore
          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.
          schema:
            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.
            example: 2025-02-01T12:34:56.000Z
        - in: query
          name: nameContains
          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`.
          schema:
            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`.
            example: ABC
        - in: query
          name: nameStartsWith
          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`.
          schema:
            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`.
            example: ABC
        - in: query
          name: nameEndsWith
          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`.
          schema:
            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`.
            example: ABC
        - in: query
          name: nameFrom
          description: >-
            Filter for sales-tax codes whose `name` is alphabetically greater
            than or equal to this value.
          schema:
            type: string
            description: >-
              Filter for sales-tax codes whose `name` is alphabetically greater
              than or equal to this value.
            example: A
        - in: query
          name: nameTo
          description: >-
            Filter for sales-tax codes whose `name` is alphabetically less than
            or equal to this value.
          schema:
            type: string
            description: >-
              Filter for sales-tax codes whose `name` is alphabetically less
              than or equal to this value.
            example: Z
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns a list of sales-tax codes.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          content:
            application/json:
              schema:
                type: object
                properties:
                  objectType:
                    type: string
                    const: list
                    description: The type of object. This value is always `"list"`.
                    example: 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
          description: The ID of the End-User to receive this request.
          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
      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:
                  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
                  default: 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:
                  type: string
                  description: A description of this sales-tax code.
                  example: Standard tax rate for California
                salesTaxItemId:
                  type: string
                  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
              required:
                - name
                - isTaxable
              additionalProperties: false
      responses:
        '200':
          description: Returns the newly created sales-tax code.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the sales-tax code to
            retrieve.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the sales-tax code to
              retrieve.
            example: 80000001-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns the specified sales-tax code.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the sales-tax code to
            update.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the sales-tax code to
              update.
            example: 80000001-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      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:
                  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:
                  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:
                  type: string
                  description: A description of this sales-tax code.
                  example: Standard tax rate for California
                salesTaxItemId:
                  type: string
                  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
              required:
                - revisionNumber
              additionalProperties: false
      responses:
        '200':
          description: Returns the updated sales-tax code.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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-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: query
          name: ids
          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.
          schema:
            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.
            example:
              - 80000001-1234567890
        - in: query
          name: names
          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.
          schema:
            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.
            example:
              - Standard Tax
        - in: query
          name: limit
          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.
          schema:
            type: integer
            minimum: 1
            maximum: 150
            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
        - in: query
          name: cursor
          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.
          schema:
            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.
            example: 12345678-abcd-abcd-example-1234567890ab
        - in: query
          name: status
          description: Filter for sales-tax items that are active, inactive, or both.
          schema:
            type: string
            enum:
              - active
              - all
              - inactive
            default: active
            description: Filter for sales-tax items that are active, inactive, or both.
            example: active
        - in: query
          name: updatedAfter
          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.
          schema:
            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.
            example: 2025-01-01T12:34:56.000Z
        - in: query
          name: updatedBefore
          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.
          schema:
            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.
            example: 2025-02-01T12:34:56.000Z
        - in: query
          name: nameContains
          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`.
          schema:
            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`.
            example: ABC
        - in: query
          name: nameStartsWith
          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`.
          schema:
            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`.
            example: ABC
        - in: query
          name: nameEndsWith
          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`.
          schema:
            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`.
            example: ABC
        - in: query
          name: nameFrom
          description: >-
            Filter for sales-tax items whose `name` is alphabetically greater
            than or equal to this value.
          schema:
            type: string
            description: >-
              Filter for sales-tax items whose `name` is alphabetically greater
              than or equal to this value.
            example: A
        - in: query
          name: nameTo
          description: >-
            Filter for sales-tax items whose `name` is alphabetically less than
            or equal to this value.
          schema:
            type: string
            description: >-
              Filter for sales-tax items whose `name` is alphabetically less
              than or equal to this value.
            example: Z
        - in: query
          name: classIds
          description: >-
            Filter for sales-tax items of these classes. A class is a way
            end-users can categorize sales-tax items in QuickBooks.
          schema:
            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.
            example:
              - 80000001-1234567890
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns a list of sales-tax items.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          content:
            application/json:
              schema:
                type: object
                properties:
                  objectType:
                    type: string
                    const: list
                    description: The type of object. This value is always `"list"`.
                    example: 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:
                    type:
                      - string
                      - '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:
                    type:
                      - number
                      - '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
          description: The ID of the End-User to receive this request.
          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
      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:
                  type: object
                  properties:
                    value:
                      type: string
                      description: The item's barcode value.
                      example: '012345678905'
                    assignEvenIfUsed:
                      type: boolean
                      description: >-
                        Indicates whether to assign the barcode even if it is
                        already used.
                      example: false
                      default: false
                    allowOverride:
                      type: boolean
                      description: Indicates whether to allow the barcode to be overridden.
                      example: false
                      default: false
                  additionalProperties: false
                  description: The sales-tax item's barcode.
                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
                  default: true
                classId:
                  type: string
                  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
                description:
                  type: string
                  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:
                  type: string
                  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'
                taxVendorId:
                  type: string
                  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
                salesTaxReturnLineId:
                  type: string
                  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
                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:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the sales-tax item to
            retrieve.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the sales-tax item to
              retrieve.
            example: 80000001-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns the specified sales-tax item.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the sales-tax item to
            update.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the sales-tax item to
              update.
            example: 80000001-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      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:
                  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:
                  type: object
                  properties:
                    value:
                      type: string
                      description: The item's barcode value.
                      example: '012345678905'
                    assignEvenIfUsed:
                      type: boolean
                      description: >-
                        Indicates whether to assign the barcode even if it is
                        already used.
                      example: false
                      default: false
                    allowOverride:
                      type: boolean
                      description: Indicates whether to allow the barcode to be overridden.
                      example: false
                      default: false
                  additionalProperties: false
                  description: The sales-tax item's barcode.
                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
                classId:
                  type: string
                  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
                description:
                  type: string
                  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:
                  type: string
                  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'
                taxVendorId:
                  type: string
                  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
                salesTaxReturnLineId:
                  type: string
                  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
              required:
                - revisionNumber
              additionalProperties: false
      responses:
        '200':
          description: Returns the updated sales-tax item.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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/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: query
          name: ids
          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.
          schema:
            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.
            example:
              - 80000001-1234567890
        - in: query
          name: fullNames
          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.
          schema:
            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.
            example:
              - Consulting:Web-Design
        - in: query
          name: limit
          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.
          schema:
            type: integer
            minimum: 1
            maximum: 150
            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
        - in: query
          name: cursor
          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.
          schema:
            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.
            example: 12345678-abcd-abcd-example-1234567890ab
        - in: query
          name: status
          description: Filter for service items that are active, inactive, or both.
          schema:
            type: string
            enum:
              - active
              - all
              - inactive
            default: active
            description: Filter for service items that are active, inactive, or both.
            example: active
        - in: query
          name: updatedAfter
          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.
          schema:
            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.
            example: 2025-01-01T12:34:56.000Z
        - in: query
          name: updatedBefore
          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.
          schema:
            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.
            example: 2025-02-01T12:34:56.000Z
        - in: query
          name: nameContains
          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`.
          schema:
            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`.
            example: ABC
        - in: query
          name: nameStartsWith
          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`.
          schema:
            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`.
            example: ABC
        - in: query
          name: nameEndsWith
          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`.
          schema:
            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`.
            example: ABC
        - in: query
          name: nameFrom
          description: >-
            Filter for service items whose `name` is alphabetically greater than
            or equal to this value.
          schema:
            type: string
            description: >-
              Filter for service items whose `name` is alphabetically greater
              than or equal to this value.
            example: A
        - in: query
          name: nameTo
          description: >-
            Filter for service items whose `name` is alphabetically less than or
            equal to this value.
          schema:
            type: string
            description: >-
              Filter for service items whose `name` is alphabetically less than
              or equal to this value.
            example: Z
        - in: query
          name: classIds
          description: >-
            Filter for service items of these classes. A class is a way
            end-users can categorize service items in QuickBooks.
          schema:
            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.
            example:
              - 80000001-1234567890
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns a list of service items.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          content:
            application/json:
              schema:
                type: object
                properties:
                  objectType:
                    type: string
                    const: list
                    description: The type of object. This value is always `"list"`.
                    example: 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:
                    type:
                      - string
                      - '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:
                    type:
                      - number
                      - '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
          description: The ID of the End-User to receive this request.
          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
      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:
                  type: object
                  properties:
                    value:
                      type: string
                      description: The item's barcode value.
                      example: '012345678905'
                    assignEvenIfUsed:
                      type: boolean
                      description: >-
                        Indicates whether to assign the barcode even if it is
                        already used.
                      example: false
                      default: false
                    allowOverride:
                      type: boolean
                      description: Indicates whether to allow the barcode to be overridden.
                      example: false
                      default: false
                  additionalProperties: false
                  description: The service item's barcode.
                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
                  default: true
                classId:
                  type: string
                  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
                parentId:
                  type: string
                  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
                unitOfMeasureSetId:
                  type: string
                  description: >-
                    The unit-of-measure set associated with this service item,
                    which consists of a base unit and related units.
                  example: 80000001-1234567890
                salesTaxCodeId:
                  type: string
                  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. If QuickBooks is not set up to charge sales tax
                    (via the "Do You Charge Sales Tax?" preference), it will
                    assign the default non-taxable code to all sales.
                  example: 80000001-1234567890
                salesOrPurchaseDetails:
                  type: object
                  properties:
                    description:
                      type: string
                      description: A description of this item.
                      example: Hourly Consulting Service
                    price:
                      type: string
                      description: >-
                        The price at which this item is purchased or sold,
                        represented as a decimal string.
                      example: '19.99'
                    pricePercentage:
                      type: string
                      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'
                    postingAccountId:
                      type: string
                      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
                  required:
                    - postingAccountId
                  additionalProperties: false
                  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.
                salesAndPurchaseDetails:
                  type: object
                  properties:
                    salesDescription:
                      type: string
                      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:
                      type: string
                      description: >-
                        The price at which this item is sold to customers,
                        represented as a decimal string.
                      example: '19.99'
                    incomeAccountId:
                      type: string
                      description: >-
                        The income account used to track revenue from sales of
                        this item.
                      example: 80000001-1234567890
                    purchaseDescription:
                      type: string
                      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:
                      type: string
                      description: >-
                        The cost at which this item is purchased from vendors,
                        represented as a decimal string.
                      example: '15.75'
                    purchaseTaxCodeId:
                      type: string
                      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
                    expenseAccountId:
                      type: string
                      description: >-
                        The expense account used to track costs from purchases
                        of this item.
                      example: 80000001-1234567890
                    preferredVendorId:
                      type: string
                      description: >-
                        The preferred vendor from whom this item is typically
                        purchased.
                      example: 80000001-1234567890
                  required:
                    - incomeAccountId
                    - expenseAccountId
                  additionalProperties: false
                  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.
                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:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the service item to
            retrieve.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the service item to
              retrieve.
            example: 80000001-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns the specified service item.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the service item to
            update.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the service item to
              update.
            example: 80000001-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      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:
                  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:
                  type: object
                  properties:
                    value:
                      type: string
                      description: The item's barcode value.
                      example: '012345678905'
                    assignEvenIfUsed:
                      type: boolean
                      description: >-
                        Indicates whether to assign the barcode even if it is
                        already used.
                      example: false
                      default: false
                    allowOverride:
                      type: boolean
                      description: Indicates whether to allow the barcode to be overridden.
                      example: false
                      default: false
                  additionalProperties: false
                  description: The service item's barcode.
                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
                classId:
                  type: string
                  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
                parentId:
                  type: string
                  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
                unitOfMeasureSetId:
                  type: string
                  description: >-
                    The unit-of-measure set associated with this service item,
                    which consists of a base unit and related units.
                  example: 80000001-1234567890
                forceUnitOfMeasureChange:
                  type: boolean
                  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
                salesTaxCodeId:
                  type: string
                  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. If QuickBooks is not set up to charge sales tax
                    (via the "Do You Charge Sales Tax?" preference), it will
                    assign the default non-taxable code to all sales.
                  example: 80000001-1234567890
                salesOrPurchaseDetails:
                  type: object
                  properties:
                    description:
                      type: string
                      description: A description of this item.
                      example: Hourly Consulting Service
                    price:
                      type: string
                      description: >-
                        The price at which this item is purchased or sold,
                        represented as a decimal string.
                      example: '19.99'
                    pricePercentage:
                      type: string
                      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'
                    postingAccountId:
                      type: string
                      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
                    updateExistingTransactionsAccount:
                      type: boolean
                      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
                  additionalProperties: false
                  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.
                salesAndPurchaseDetails:
                  type: object
                  properties:
                    salesDescription:
                      type: string
                      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:
                      type: string
                      description: >-
                        The price at which this item is sold to customers,
                        represented as a decimal string.
                      example: '19.99'
                    incomeAccountId:
                      type: string
                      description: >-
                        The income account used to track revenue from sales of
                        this item.
                      example: 80000001-1234567890
                    purchaseDescription:
                      type: string
                      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:
                      type: string
                      description: >-
                        The cost at which this item is purchased from vendors,
                        represented as a decimal string.
                      example: '15.75'
                    purchaseTaxCodeId:
                      type: string
                      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
                    expenseAccountId:
                      type: string
                      description: >-
                        The expense account used to track costs from purchases
                        of this item.
                      example: 80000001-1234567890
                    preferredVendorId:
                      type: string
                      description: >-
                        The preferred vendor from whom this item is typically
                        purchased.
                      example: 80000001-1234567890
                    updateExistingTransactionsIncomeAccount:
                      type: boolean
                      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
                    updateExistingTransactionsExpenseAccount:
                      type: boolean
                      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
                  additionalProperties: false
                  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.
              required:
                - revisionNumber
              additionalProperties: false
      responses:
        '200':
          description: Returns the updated service item.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: query
          name: ids
          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.
          schema:
            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.
            example:
              - 80000001-1234567890
        - in: query
          name: names
          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.
          schema:
            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.
            example:
              - FedEx Ground
        - in: query
          name: limit
          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.
          schema:
            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.
            example: 10
        - in: query
          name: status
          description: Filter for shipping methods that are active, inactive, or both.
          schema:
            type: string
            enum:
              - active
              - all
              - inactive
            default: active
            description: Filter for shipping methods that are active, inactive, or both.
            example: active
        - in: query
          name: updatedAfter
          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.
          schema:
            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.
            example: 2025-01-01T12:34:56.000Z
        - in: query
          name: updatedBefore
          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.
          schema:
            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.
            example: 2025-02-01T12:34:56.000Z
        - in: query
          name: nameContains
          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`.
          schema:
            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`.
            example: ABC
        - in: query
          name: nameStartsWith
          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`.
          schema:
            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`.
            example: ABC
        - in: query
          name: nameEndsWith
          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`.
          schema:
            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`.
            example: ABC
        - in: query
          name: nameFrom
          description: >-
            Filter for shipping methods whose `name` is alphabetically greater
            than or equal to this value.
          schema:
            type: string
            description: >-
              Filter for shipping methods whose `name` is alphabetically greater
              than or equal to this value.
            example: A
        - in: query
          name: nameTo
          description: >-
            Filter for shipping methods whose `name` is alphabetically less than
            or equal to this value.
          schema:
            type: string
            description: >-
              Filter for shipping methods whose `name` is alphabetically less
              than or equal to this value.
            example: Z
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns a list of shipping methods.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          content:
            application/json:
              schema:
                type: object
                properties:
                  objectType:
                    type: string
                    const: list
                    description: The type of object. This value is always `"list"`.
                    example: 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
          description: The ID of the End-User to receive this request.
          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
      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:
                  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
                  default: true
              required:
                - name
              additionalProperties: false
      responses:
        '200':
          description: Returns the newly created shipping method.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the shipping method to
            retrieve.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the shipping method
              to retrieve.
            example: 80000001-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns the specified shipping method.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: query
          name: ids
          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.
          schema:
            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.
            example:
              - 80000001-1234567890
        - in: query
          name: names
          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.
          schema:
            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.
            example:
              - Net 30
        - in: query
          name: limit
          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.
          schema:
            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.
            example: 10
        - in: query
          name: status
          description: Filter for standard terms that are active, inactive, or both.
          schema:
            type: string
            enum:
              - active
              - all
              - inactive
            default: active
            description: Filter for standard terms that are active, inactive, or both.
            example: active
        - in: query
          name: updatedAfter
          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.
          schema:
            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.
            example: 2025-01-01T12:34:56.000Z
        - in: query
          name: updatedBefore
          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.
          schema:
            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.
            example: 2025-02-01T12:34:56.000Z
        - in: query
          name: nameContains
          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`.
          schema:
            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`.
            example: ABC
        - in: query
          name: nameStartsWith
          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`.
          schema:
            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`.
            example: ABC
        - in: query
          name: nameEndsWith
          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`.
          schema:
            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`.
            example: ABC
        - in: query
          name: nameFrom
          description: >-
            Filter for standard terms whose `name` is alphabetically greater
            than or equal to this value.
          schema:
            type: string
            description: >-
              Filter for standard terms whose `name` is alphabetically greater
              than or equal to this value.
            example: A
        - in: query
          name: nameTo
          description: >-
            Filter for standard terms whose `name` is alphabetically less than
            or equal to this value.
          schema:
            type: string
            description: >-
              Filter for standard terms whose `name` is alphabetically less than
              or equal to this value.
            example: Z
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns a list of standard terms.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          content:
            application/json:
              schema:
                type: object
                properties:
                  objectType:
                    type: string
                    const: list
                    description: The type of object. This value is always `"list"`.
                    example: 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
          description: The ID of the End-User to receive this request.
          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
      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:
                  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
                  default: true
                dueDays:
                  type: number
                  description: The number of days until payment is due.
                  example: 30
                discountDays:
                  type: number
                  description: >-
                    The number of days within which payment must be received to
                    qualify for the discount specified by `discountPercentage`.
                  example: 10
                discountPercentage:
                  type: string
                  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:
                - name
              additionalProperties: false
      responses:
        '200':
          description: Returns the newly created standard term.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the standard term to
            retrieve.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the standard term to
              retrieve.
            example: 80000001-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns the specified standard term.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: query
          name: ids
          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.
          schema:
            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.
            example:
              - 80000001-1234567890
        - in: query
          name: names
          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.
          schema:
            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.
            example:
              - Labor subtotal
        - in: query
          name: limit
          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.
          schema:
            type: integer
            minimum: 1
            maximum: 150
            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
        - in: query
          name: cursor
          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.
          schema:
            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.
            example: 12345678-abcd-abcd-example-1234567890ab
        - in: query
          name: status
          description: Filter for subtotal items that are active, inactive, or both.
          schema:
            type: string
            enum:
              - active
              - all
              - inactive
            default: active
            description: Filter for subtotal items that are active, inactive, or both.
            example: active
        - in: query
          name: updatedAfter
          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.
          schema:
            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.
            example: 2025-01-01T12:34:56.000Z
        - in: query
          name: updatedBefore
          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.
          schema:
            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.
            example: 2025-02-01T12:34:56.000Z
        - in: query
          name: nameContains
          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`.
          schema:
            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`.
            example: ABC
        - in: query
          name: nameStartsWith
          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`.
          schema:
            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`.
            example: ABC
        - in: query
          name: nameEndsWith
          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`.
          schema:
            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`.
            example: ABC
        - in: query
          name: nameFrom
          description: >-
            Filter for subtotal items whose `name` is alphabetically greater
            than or equal to this value.
          schema:
            type: string
            description: >-
              Filter for subtotal items whose `name` is alphabetically greater
              than or equal to this value.
            example: A
        - in: query
          name: nameTo
          description: >-
            Filter for subtotal items whose `name` is alphabetically less than
            or equal to this value.
          schema:
            type: string
            description: >-
              Filter for subtotal items whose `name` is alphabetically less than
              or equal to this value.
            example: Z
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns a list of subtotal items.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          content:
            application/json:
              schema:
                type: object
                properties:
                  objectType:
                    type: string
                    const: list
                    description: The type of object. This value is always `"list"`.
                    example: 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:
                    type:
                      - string
                      - '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:
                    type:
                      - number
                      - '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
          description: The ID of the End-User to receive this request.
          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
      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:
                  type: object
                  properties:
                    value:
                      type: string
                      description: The item's barcode value.
                      example: '012345678905'
                    assignEvenIfUsed:
                      type: boolean
                      description: >-
                        Indicates whether to assign the barcode even if it is
                        already used.
                      example: false
                      default: false
                    allowOverride:
                      type: boolean
                      description: Indicates whether to allow the barcode to be overridden.
                      example: false
                      default: false
                  additionalProperties: false
                  description: The subtotal item's barcode.
                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
                  default: true
                description:
                  type: string
                  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
                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:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the subtotal item to
            retrieve.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the subtotal item to
              retrieve.
            example: 80000001-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns the specified subtotal item.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the subtotal item to
            update.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the subtotal item to
              update.
            example: 80000001-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      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:
                  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:
                  type: object
                  properties:
                    value:
                      type: string
                      description: The item's barcode value.
                      example: '012345678905'
                    assignEvenIfUsed:
                      type: boolean
                      description: >-
                        Indicates whether to assign the barcode even if it is
                        already used.
                      example: false
                      default: false
                    allowOverride:
                      type: boolean
                      description: Indicates whether to allow the barcode to be overridden.
                      example: false
                      default: false
                  additionalProperties: false
                  description: The subtotal item's barcode.
                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:
                  type: string
                  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
              required:
                - revisionNumber
              additionalProperties: false
      responses:
        '200':
          description: Returns the updated subtotal item.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns a list of templates.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          content:
            application/json:
              schema:
                type: object
                properties:
                  objectType:
                    type: string
                    const: list
                    description: The type of object. This value is always `"list"`.
                    example: 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:
                    type:
                      - string
                      - '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:
                    type:
                      - number
                      - '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: query
          name: ids
          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.
          schema:
            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.
            example:
              - 123ABC-1234567890
        - in: query
          name: limit
          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.
          schema:
            type: integer
            minimum: 1
            maximum: 150
            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
        - in: query
          name: cursor
          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.
          schema:
            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.
            example: 12345678-abcd-abcd-example-1234567890ab
        - in: query
          name: updatedAfter
          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.
          schema:
            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.
            example: 2025-01-01T12:34:56.000Z
        - in: query
          name: updatedBefore
          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.
          schema:
            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.
            example: 2025-02-01T12:34:56.000Z
        - in: query
          name: transactionDateFrom
          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`).
          schema:
            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`).
            example: '2025-01-01'
        - in: query
          name: transactionDateTo
          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`).
          schema:
            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`).
            example: '2025-02-01'
        - in: query
          name: entityIds
          description: >-
            Filter for time tracking activities tracking the time of these
            employees, vendors, or persons on QuickBooks's "Other Names" list.
          schema:
            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.
            example:
              - 80000001-1234567890
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns a list of time tracking activities.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          content:
            application/json:
              schema:
                type: object
                properties:
                  objectType:
                    type: string
                    const: list
                    description: The type of object. This value is always `"list"`.
                    example: 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:
                    type:
                      - string
                      - '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:
                    type:
                      - number
                      - '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
          description: The ID of the End-User to receive this request.
          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
      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:
                  type: string
                  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
                customerId:
                  type: string
                  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
                serviceItemId:
                  type: string
                  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
                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
                classId:
                  type: string
                  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
                payrollWageItemId:
                  type: string
                  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
                note:
                  type: string
                  description: A note or comment about this time tracking activity.
                  example: Project planning meeting with client.
                billingStatus:
                  type: string
                  enum:
                    - billable
                    - has_been_billed
                    - not_billable
                  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
                  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:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the time tracking
            activity to retrieve.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the time tracking
              activity to retrieve.
            example: 123ABC-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns the specified time tracking activity.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the time tracking
            activity to update.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the time tracking
              activity to update.
            example: 123ABC-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      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:
                  type: string
                  format: date
                  description: >-
                    The date of this time tracking activity, in ISO 8601 format
                    (YYYY-MM-DD).
                  example: '2024-10-01'
                entityId:
                  type: string
                  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
                customerId:
                  type: string
                  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
                serviceItemId:
                  type: string
                  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
                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
                classId:
                  type: string
                  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
                payrollWageItemId:
                  type: string
                  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
                note:
                  type: string
                  description: A note or comment about this time tracking activity.
                  example: Project planning meeting with client.
                billingStatus:
                  type: string
                  enum:
                    - billable
                    - has_been_billed
                    - not_billable
                  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
              required:
                - revisionNumber
                - entityId
                - duration
              additionalProperties: false
      responses:
        '200':
          description: Returns the updated time tracking activity.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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 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: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the time tracking
            activity to delete.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the time tracking
              activity to delete.
            example: 123ABC-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: >-
            Returns a confirmation of the deletion with the ID of the deleted
            time tracking activity.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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:
                    type: string
                    const: qbd_time_tracking_activity
                    description: >-
                      The type of object. This value is always
                      `"qbd_time_tracking_activity"`.
                    example: qbd_time_tracking_activity
                  refNumber:
                    type:
                      - string
                      - 'null'
                    description: >-
                      The case-sensitive user-defined reference number of the
                      deleted time tracking activity.
                    example: TT-1234
                  deleted:
                    type: boolean
                    description: Indicates whether the time tracking activity 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 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.
      security:
        - BearerAuth: []
      parameters:
        - in: query
          name: ids
          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.
          schema:
            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.
            example:
              - 123ABC-1234567890
        - in: query
          name: limit
          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.
          schema:
            type: integer
            minimum: 1
            maximum: 150
            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
        - in: query
          name: cursor
          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.
          schema:
            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.
            example: 12345678-abcd-abcd-example-1234567890ab
        - in: query
          name: refNumbers
          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.
          schema:
            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.
            example:
              - TRANSACTION-1234
        - in: query
          name: refNumberContains
          description: >-
            Filter for transactions whose `refNumber` contains this substring.


            **NOTE**: If you use this parameter, you cannot also use
            `refNumberStartsWith` or `refNumberEndsWith`.
          schema:
            type: string
            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
        - in: query
          name: refNumberStartsWith
          description: >-
            Filter for transactions whose `refNumber` starts with this
            substring.


            **NOTE**: If you use this parameter, you cannot also use
            `refNumberContains` or `refNumberEndsWith`.
          schema:
            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`.
            example: INV
        - in: query
          name: refNumberEndsWith
          description: >-
            Filter for transactions whose `refNumber` ends with this substring.


            **NOTE**: If you use this parameter, you cannot also use
            `refNumberContains` or `refNumberStartsWith`.
          schema:
            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`.
            example: '1234'
        - in: query
          name: refNumberFrom
          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.
          schema:
            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.
            example: INV-0001
        - in: query
          name: refNumberTo
          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.
          schema:
            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.
            example: INV-9999
        - in: query
          name: updatedAfter
          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.
          schema:
            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.
            example: 2025-01-01T12:34:56.000Z
        - in: query
          name: updatedBefore
          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.
          schema:
            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.
            example: 2025-02-01T12:34:56.000Z
        - in: query
          name: transactionDateFrom
          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`).
          schema:
            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`).
            example: '2025-01-01'
        - in: query
          name: transactionDateTo
          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`).
          schema:
            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`).
            example: '2025-02-01'
        - in: query
          name: entityIds
          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`.
          schema:
            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`.
            example:
              - 80000001-1234567890
        - in: query
          name: accountIds
          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`.
          schema:
            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`.
            example:
              - 80000001-1234567890
        - in: query
          name: itemIds
          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`.
          schema:
            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`.
            example:
              - 80000001-1234567890
        - in: query
          name: classIds
          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`.
          schema:
            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`.
            example:
              - 80000001-1234567890
        - in: query
          name: transactionTypes
          description: >-
            Filter for transactions by their transaction type(s).


            **NOTE**: Filtering for time tracking activities is not supported by
            QuickBooks for this endpoint.
          schema:
            type: array
            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
            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
        - in: query
          name: detailLevel
          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`.
          schema:
            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`.
            example: transactions_without_lines
        - in: query
          name: postingStatus
          description: >-
            Filter for transactions that are posting, non-posting, or either.
            Posting status refers to whether QuickBooks records the transaction
            in an account register.
          schema:
            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.
            example: posting
        - in: query
          name: paymentStatus
          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.
          schema:
            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.
            example: open
        - in: query
          name: currencyIds
          description: Filter for transactions in these currencies.
          schema:
            type: array
            items:
              type: string
            description: Filter for transactions in these currencies.
            example:
              - 80000001-1234567890
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns a list of transactions.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          content:
            application/json:
              schema:
                type: object
                properties:
                  objectType:
                    type: string
                    const: list
                    description: The type of object. This value is always `"list"`.
                    example: 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:
                    type:
                      - string
                      - '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:
                    type:
                      - number
                      - '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: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the transaction to
            retrieve.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the transaction to
              retrieve.
            example: 123ABC-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns the specified transaction.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: query
          name: ids
          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.
          schema:
            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.
            example:
              - 123ABC-1234567890
        - in: query
          name: limit
          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.
          schema:
            type: integer
            minimum: 1
            maximum: 150
            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
        - in: query
          name: cursor
          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.
          schema:
            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.
            example: 12345678-abcd-abcd-example-1234567890ab
        - in: query
          name: updatedAfter
          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.
          schema:
            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.
            example: 2025-01-01T12:34:56.000Z
        - in: query
          name: updatedBefore
          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.
          schema:
            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.
            example: 2025-02-01T12:34:56.000Z
        - in: query
          name: transactionDateFrom
          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`).
          schema:
            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`).
            example: '2025-01-01'
        - in: query
          name: transactionDateTo
          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`).
          schema:
            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`).
            example: '2025-02-01'
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns a list of transfers.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          content:
            application/json:
              schema:
                type: object
                properties:
                  objectType:
                    type: string
                    const: list
                    description: The type of object. This value is always `"list"`.
                    example: 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:
                    type:
                      - string
                      - '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:
                    type:
                      - number
                      - '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
          description: The ID of the End-User to receive this request.
          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
      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:
                  type: string
                  description: The account from which money will be transferred.
                  example: 80000001-1234567890
                targetAccountId:
                  type: string
                  description: The account to which money will be transferred.
                  example: 80000001-1234567890
                classId:
                  type: string
                  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
                amount:
                  type: string
                  description: >-
                    The monetary amount of this transfer, represented as a
                    decimal string.
                  example: '1000.00'
                memo:
                  type: string
                  description: A memo or note for this transfer.
                  example: Monthly transfer to savings
              required:
                - transactionDate
                - sourceAccountId
                - targetAccountId
                - amount
              additionalProperties: false
      responses:
        '200':
          description: Returns the newly created transfer.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the transfer to
            retrieve.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the transfer to
              retrieve.
            example: 123ABC-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns the specified transfer.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: path
          name: id
          description: The QuickBooks-assigned unique identifier of the transfer to update.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the transfer to
              update.
            example: 123ABC-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      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:
                  type: string
                  format: date
                  description: The date of this transfer, in ISO 8601 format (YYYY-MM-DD).
                  example: '2024-10-01'
                sourceAccountId:
                  type: string
                  description: The account from which money will be transferred.
                  example: 80000001-1234567890
                targetAccountId:
                  type: string
                  description: The account to which money will be transferred.
                  example: 80000001-1234567890
                classId:
                  type: string
                  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
                amount:
                  type: string
                  description: >-
                    The monetary amount of this transfer, represented as a
                    decimal string.
                  example: '1000.00'
                memo:
                  type: string
                  description: A memo or note for this transfer.
                  example: Monthly transfer to savings
              required:
                - revisionNumber
              additionalProperties: false
      responses:
        '200':
          description: Returns the updated transfer.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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).
      security:
        - BearerAuth: []
      parameters:
        - in: query
          name: ids
          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.
          schema:
            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.
            example:
              - 80000001-1234567890
        - in: query
          name: names
          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.
          schema:
            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.
            example:
              - Weight Units
        - in: query
          name: limit
          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.
          schema:
            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.
            example: 10
        - in: query
          name: status
          description: Filter for unit-of-measure sets that are active, inactive, or both.
          schema:
            type: string
            enum:
              - active
              - all
              - inactive
            default: active
            description: >-
              Filter for unit-of-measure sets that are active, inactive, or
              both.
            example: active
        - in: query
          name: updatedAfter
          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.
          schema:
            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.
            example: 2025-01-01T12:34:56.000Z
        - in: query
          name: updatedBefore
          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.
          schema:
            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.
            example: 2025-02-01T12:34:56.000Z
        - in: query
          name: nameContains
          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`.
          schema:
            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`.
            example: ABC
        - in: query
          name: nameStartsWith
          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`.
          schema:
            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`.
            example: ABC
        - in: query
          name: nameEndsWith
          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`.
          schema:
            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`.
            example: ABC
        - in: query
          name: nameFrom
          description: >-
            Filter for unit-of-measure sets whose `name` is alphabetically
            greater than or equal to this value.
          schema:
            type: string
            description: >-
              Filter for unit-of-measure sets whose `name` is alphabetically
              greater than or equal to this value.
            example: A
        - in: query
          name: nameTo
          description: >-
            Filter for unit-of-measure sets whose `name` is alphabetically less
            than or equal to this value.
          schema:
            type: string
            description: >-
              Filter for unit-of-measure sets whose `name` is alphabetically
              less than or equal to this value.
            example: Z
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns a list of unit-of-measure sets.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          content:
            application/json:
              schema:
                type: object
                properties:
                  objectType:
                    type: string
                    const: list
                    description: The type of object. This value is always `"list"`.
                    example: 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
          description: The ID of the End-User to receive this request.
          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
      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:
                  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
                  default: 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:
                  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
                  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.
                relatedUnits:
                  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
                  minItems: 1
                  description: >-
                    The unit-of-measure set's related units, each specifying how
                    many base units they represent (conversion ratio).
                defaultUnits:
                  type: array
                  items:
                    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
                        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
                  minItems: 1
                  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:
                - name
                - unitOfMeasureType
                - baseUnit
              additionalProperties: false
      responses:
        '200':
          description: Returns the newly created unit-of-measure set.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the unit-of-measure set
            to retrieve.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the unit-of-measure
              set to retrieve.
            example: 80000001-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns the specified unit-of-measure set.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: query
          name: ids
          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.
          schema:
            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.
            example:
              - 123ABC-1234567890
        - in: query
          name: refNumbers
          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.
          schema:
            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.
            example:
              - VENDOR CREDIT-1234
        - in: query
          name: limit
          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.
          schema:
            type: integer
            minimum: 1
            maximum: 150
            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
        - in: query
          name: cursor
          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.
          schema:
            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.
            example: 12345678-abcd-abcd-example-1234567890ab
        - in: query
          name: updatedAfter
          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.
          schema:
            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.
            example: 2025-01-01T12:34:56.000Z
        - in: query
          name: updatedBefore
          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.
          schema:
            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.
            example: 2025-02-01T12:34:56.000Z
        - in: query
          name: transactionDateFrom
          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`).
          schema:
            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`).
            example: '2025-01-01'
        - in: query
          name: transactionDateTo
          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`).
          schema:
            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`).
            example: '2025-02-01'
        - in: query
          name: vendorIds
          description: >-
            Filter for vendor credits received from these vendors. These are the
            vendors who owe the QuickBooks user money.
          schema:
            type: array
            items:
              type: string
            description: >-
              Filter for vendor credits received from these vendors. These are
              the vendors who owe the QuickBooks user money.
            example:
              - 80000001-1234567890
        - in: query
          name: accountIds
          description: Filter for vendor credits associated with these accounts.
          schema:
            type: array
            items:
              type: string
            description: Filter for vendor credits associated with these accounts.
            example:
              - 80000001-1234567890
        - in: query
          name: refNumberContains
          description: >-
            Filter for vendor credits whose `refNumber` contains this substring.


            **NOTE**: If you use this parameter, you cannot also use
            `refNumberStartsWith` or `refNumberEndsWith`.
          schema:
            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`.
            example: VCREDIT-1234
        - in: query
          name: refNumberStartsWith
          description: >-
            Filter for vendor credits whose `refNumber` starts with this
            substring.


            **NOTE**: If you use this parameter, you cannot also use
            `refNumberContains` or `refNumberEndsWith`.
          schema:
            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`.
            example: VCREDIT
        - in: query
          name: refNumberEndsWith
          description: >-
            Filter for vendor credits whose `refNumber` ends with this
            substring.


            **NOTE**: If you use this parameter, you cannot also use
            `refNumberContains` or `refNumberStartsWith`.
          schema:
            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`.
            example: '1234'
        - in: query
          name: refNumberFrom
          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.
          schema:
            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.
            example: VCREDIT-0001
        - in: query
          name: refNumberTo
          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.
          schema:
            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.
            example: VCREDIT-9999
        - in: query
          name: currencyIds
          description: Filter for vendor credits in these currencies.
          schema:
            type: array
            items:
              type: string
            description: Filter for vendor credits in these currencies.
            example:
              - 80000001-1234567890
        - in: query
          name: includeLineItems
          description: Whether to include line items in the response. Defaults to `true`.
          schema:
            type: boolean
            description: Whether to include line items in the response. Defaults to `true`.
            example: true
            default: true
        - in: query
          name: includeLinkedTransactions
          description: >-
            Whether to include linked transactions in the response. Defaults to
            `false`. For example, a payment linked to the corresponding vendor
            credit.
          schema:
            type: boolean
            description: >-
              Whether to include linked transactions in the response. Defaults
              to `false`. For example, a payment linked to the corresponding
              vendor credit.
            example: false
            default: false
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns a list of vendor credits.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          content:
            application/json:
              schema:
                type: object
                properties:
                  objectType:
                    type: string
                    const: list
                    description: The type of object. This value is always `"list"`.
                    example: 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:
                    type:
                      - string
                      - '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:
                    type:
                      - number
                      - '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
          description: The ID of the End-User to receive this request.
          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
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                vendorId:
                  type: string
                  description: >-
                    The vendor who sent this vendor credit for goods or services
                    purchased.
                  example: 80000001-1234567890
                payablesAccountId:
                  type: string
                  description: >-
                    The Accounts-Payable (A/P) account to which this vendor
                    credit is assigned, used to track the amount owed. If not
                    specified, QuickBooks Desktop will use its default A/P
                    account.


                    **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
                transactionDate:
                  type: string
                  format: date
                  description: >-
                    The date of this vendor credit, in ISO 8601 format
                    (YYYY-MM-DD).
                  example: '2024-10-01'
                refNumber:
                  type: string
                  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).
                  example: VCREDIT-1234
                memo:
                  type: string
                  description: A memo or note for this vendor credit.
                  example: Credit for returned merchandise - Invoice INV-1234
                salesTaxCodeId:
                  type: string
                  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. If QuickBooks is not set up to charge sales tax
                    (via the "Do You Charge Sales Tax?" preference), it will
                    assign the default non-taxable code to all sales.
                  example: 80000001-1234567890
                exchangeRate:
                  type: number
                  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
                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:
                  type: array
                  items:
                    type: object
                    properties:
                      accountId:
                        type: string
                        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
                      amount:
                        type: string
                        description: >-
                          The monetary amount of this expense line, represented
                          as a decimal string.
                        example: '1000.00'
                      memo:
                        type: string
                        description: A memo or note for this expense line.
                        example: New office chair
                      payeeId:
                        type: string
                        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
                      classId:
                        type: string
                        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
                      salesTaxCodeId:
                        type: string
                        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. If QuickBooks is not set up to charge
                          sales tax (via the "Do You Charge Sales Tax?"
                          preference), it will assign the default non-taxable
                          code to all sales.
                        example: 80000001-1234567890
                      billingStatus:
                        type: string
                        enum:
                          - billable
                          - has_been_billed
                          - not_billable
                        description: The billing status of this expense line.
                        example: billable
                        default: billable
                      salesRepresentativeId:
                        type: string
                        description: >-
                          The expense line's sales representative. Sales
                          representatives can be employees, vendors, or other
                          names in QuickBooks.
                        example: 80000001-1234567890
                      customFields:
                        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
                        minItems: 1
                        description: >-
                          The custom fields for the expense line object, added
                          as user-defined data extensions, not included in the
                          standard QuickBooks object.
                    additionalProperties: false
                  minItems: 1
                  description: >-
                    The vendor credit's expense lines, each representing one
                    line in this expense.
                itemLines:
                  type: array
                  items:
                    type: object
                    properties:
                      itemId:
                        type: string
                        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
                      inventorySiteId:
                        type: string
                        description: >-
                          The site location where inventory for the item
                          associated with this item line is stored.
                        example: 80000001-1234567890
                      inventorySiteLocationId:
                        type: string
                        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
                      serialNumber:
                        type: string
                        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:
                        type: string
                        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:
                        type: string
                        format: date
                        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'
                      description:
                        type: string
                        description: A description of this item line.
                        example: High-quality widget with custom engraving
                      quantity:
                        type: number
                        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:
                        type: string
                        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
                      cost:
                        type: string
                        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:
                        type: string
                        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'
                      customerId:
                        type: string
                        description: >-
                          The customer or customer-job associated with this item
                          line.
                        example: 80000001-1234567890
                      classId:
                        type: string
                        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
                      salesTaxCodeId:
                        type: string
                        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. If QuickBooks is not set up to charge
                          sales tax (via the "Do You Charge Sales Tax?"
                          preference), it will assign the default non-taxable
                          code to all sales.
                        example: 80000001-1234567890
                      billingStatus:
                        type: string
                        enum:
                          - billable
                          - has_been_billed
                          - not_billable
                        description: The billing status of this item line.
                        example: billable
                        default: billable
                      overrideItemAccountId:
                        type: string
                        description: >-
                          The account to use for this item line, overriding the
                          default account associated with the item.
                        example: 80000001-1234567890
                      linkToTransactionLine:
                        type: object
                        properties:
                          transactionId:
                            type: string
                            description: >-
                              The ID of the transaction to which to link this
                              transaction.
                            example: 123ABC-1234567890
                          transactionLineId:
                            type: string
                            description: >-
                              The ID of the transaction line to which to link
                              this transaction.
                            example: 456DEF-1234567890
                        required:
                          - transactionId
                          - transactionLineId
                        additionalProperties: false
                        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.
                      salesRepresentativeId:
                        type: string
                        description: >-
                          The item line's sales representative. Sales
                          representatives can be employees, vendors, or other
                          names in QuickBooks.
                        example: 80000001-1234567890
                      customFields:
                        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
                        minItems: 1
                        description: >-
                          The custom fields for the item line object, added as
                          user-defined data extensions, not included in the
                          standard QuickBooks object.
                    additionalProperties: false
                  minItems: 1
                  description: >-
                    The vendor credit's item lines, each representing the
                    purchase of a specific item or service.
                itemGroupLines:
                  type: array
                  items:
                    type: object
                    properties:
                      itemGroupId:
                        type: string
                        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
                      quantity:
                        type: number
                        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:
                        type: string
                        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
                      inventorySiteId:
                        type: string
                        description: >-
                          The site location where inventory for the item group
                          associated with this item group line is stored.
                        example: 80000001-1234567890
                      inventorySiteLocationId:
                        type: string
                        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
                      customFields:
                        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
                        minItems: 1
                        description: >-
                          The custom fields for the item group line object,
                          added as user-defined data extensions, not included in
                          the standard QuickBooks object.
                    required:
                      - itemGroupId
                    additionalProperties: false
                  minItems: 1
                  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.
              required:
                - vendorId
                - transactionDate
              additionalProperties: false
      responses:
        '200':
          description: Returns the newly created vendor credit.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the vendor credit to
            retrieve.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the vendor credit to
              retrieve.
            example: 123ABC-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns the specified vendor credit.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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.
      security:
        - BearerAuth: []
      parameters:
        - in: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the vendor credit to
            update.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the vendor credit to
              update.
            example: 123ABC-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      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:
                  type: string
                  description: >-
                    The vendor who sent this vendor credit for goods or services
                    purchased.
                  example: 80000001-1234567890
                payablesAccountId:
                  type: string
                  description: >-
                    The Accounts-Payable (A/P) account to which this vendor
                    credit is assigned, used to track the amount owed. If not
                    specified, QuickBooks Desktop will use its default A/P
                    account.


                    **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
                transactionDate:
                  type: string
                  format: date
                  description: >-
                    The date of this vendor credit, in ISO 8601 format
                    (YYYY-MM-DD).
                  example: '2024-10-01'
                refNumber:
                  type: string
                  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:
                  type: string
                  description: A memo or note for this vendor credit.
                  example: Credit for returned merchandise - Invoice INV-1234
                salesTaxCodeId:
                  type: string
                  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. If QuickBooks is not set up to charge sales tax
                    (via the "Do You Charge Sales Tax?" preference), it will
                    assign the default non-taxable code to all sales.
                  example: 80000001-1234567890
                exchangeRate:
                  type: number
                  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
                clearExpenseLines:
                  type: boolean
                  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
                expenseLines:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                        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:
                        type: string
                        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
                      amount:
                        type: string
                        description: >-
                          The monetary amount of this expense line, represented
                          as a decimal string.
                        example: '1000.00'
                      memo:
                        type: string
                        description: A memo or note for this expense line.
                        example: New office chair
                      payeeId:
                        type: string
                        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
                      classId:
                        type: string
                        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
                      salesTaxCodeId:
                        type: string
                        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. If QuickBooks is not set up to charge
                          sales tax (via the "Do You Charge Sales Tax?"
                          preference), it will assign the default non-taxable
                          code to all sales.
                        example: 80000001-1234567890
                      billingStatus:
                        type: string
                        enum:
                          - billable
                          - has_been_billed
                          - not_billable
                        description: The billing status of this expense line.
                        example: billable
                      salesRepresentativeId:
                        type: string
                        description: >-
                          The expense line's sales representative. Sales
                          representatives can be employees, vendors, or other
                          names in QuickBooks.
                        example: 80000001-1234567890
                    required:
                      - id
                    additionalProperties: false
                  minItems: 1
                  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.
                clearItemLines:
                  type: boolean
                  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
                itemLines:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                        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:
                        type: string
                        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
                      inventorySiteId:
                        type: string
                        description: >-
                          The site location where inventory for the item
                          associated with this item line is stored.
                        example: 80000001-1234567890
                      inventorySiteLocationId:
                        type: string
                        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
                      serialNumber:
                        type: string
                        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:
                        type: string
                        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:
                        type: string
                        format: date
                        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'
                      description:
                        type: string
                        description: A description of this item line.
                        example: High-quality widget with custom engraving
                      quantity:
                        type: number
                        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:
                        type: string
                        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
                      overrideUnitOfMeasureSetId:
                        type: string
                        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
                      cost:
                        type: string
                        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:
                        type: string
                        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'
                      customerId:
                        type: string
                        description: >-
                          The customer or customer-job associated with this item
                          line.
                        example: 80000001-1234567890
                      classId:
                        type: string
                        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
                      salesTaxCodeId:
                        type: string
                        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. If QuickBooks is not set up to charge
                          sales tax (via the "Do You Charge Sales Tax?"
                          preference), it will assign the default non-taxable
                          code to all sales.
                        example: 80000001-1234567890
                      billingStatus:
                        type: string
                        enum:
                          - billable
                          - has_been_billed
                          - not_billable
                        description: The billing status of this item line.
                        example: billable
                      overrideItemAccountId:
                        type: string
                        description: >-
                          The account to use for this item line, overriding the
                          default account associated with the item.
                        example: 80000001-1234567890
                      salesRepresentativeId:
                        type: string
                        description: >-
                          The item line's sales representative. Sales
                          representatives can be employees, vendors, or other
                          names in QuickBooks.
                        example: 80000001-1234567890
                    required:
                      - id
                    additionalProperties: false
                  minItems: 1
                  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.
                itemGroupLines:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                        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:
                        type: string
                        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
                      quantity:
                        type: number
                        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:
                        type: string
                        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
                      overrideUnitOfMeasureSetId:
                        type: string
                        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
                      itemLines:
                        type: array
                        items:
                          type: object
                          properties:
                            id:
                              type: string
                              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:
                              type: string
                              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
                            inventorySiteId:
                              type: string
                              description: >-
                                The site location where inventory for the item
                                associated with this item line is stored.
                              example: 80000001-1234567890
                            inventorySiteLocationId:
                              type: string
                              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
                            serialNumber:
                              type: string
                              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:
                              type: string
                              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:
                              type: string
                              format: date
                              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'
                            description:
                              type: string
                              description: A description of this item line.
                              example: High-quality widget with custom engraving
                            quantity:
                              type: number
                              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:
                              type: string
                              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
                            overrideUnitOfMeasureSetId:
                              type: string
                              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
                            cost:
                              type: string
                              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:
                              type: string
                              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'
                            customerId:
                              type: string
                              description: >-
                                The customer or customer-job associated with
                                this item line.
                              example: 80000001-1234567890
                            classId:
                              type: string
                              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
                            salesTaxCodeId:
                              type: string
                              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. If QuickBooks is not set
                                up to charge sales tax (via the "Do You Charge
                                Sales Tax?" preference), it will assign the
                                default non-taxable code to all sales.
                              example: 80000001-1234567890
                            billingStatus:
                              type: string
                              enum:
                                - billable
                                - has_been_billed
                                - not_billable
                              description: The billing status of this item line.
                              example: billable
                            overrideItemAccountId:
                              type: string
                              description: >-
                                The account to use for this item line,
                                overriding the default account associated with
                                the item.
                              example: 80000001-1234567890
                            salesRepresentativeId:
                              type: string
                              description: >-
                                The item line's sales representative. Sales
                                representatives can be employees, vendors, or
                                other names in QuickBooks.
                              example: 80000001-1234567890
                          required:
                            - id
                          additionalProperties: false
                        minItems: 1
                        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.
                    required:
                      - id
                    additionalProperties: false
                  minItems: 1
                  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.
              required:
                - revisionNumber
              additionalProperties: false
      responses:
        '200':
          description: Returns the updated vendor credit.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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 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: path
          name: id
          description: >-
            The QuickBooks-assigned unique identifier of the vendor credit to
            delete.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the vendor credit to
              delete.
            example: 123ABC-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: >-
            Returns a confirmation of the deletion with the ID of the deleted
            vendor credit.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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:
                    type: string
                    const: qbd_vendor_credit
                    description: >-
                      The type of object. This value is always
                      `"qbd_vendor_credit"`.
                    example: qbd_vendor_credit
                  refNumber:
                    type:
                      - string
                      - '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/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: query
          name: ids
          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.
          schema:
            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.
            example:
              - 80000001-1234567890
        - in: query
          name: names
          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.
          schema:
            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.
            example:
              - Acme Supplies Inc.
        - in: query
          name: limit
          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.
          schema:
            type: integer
            minimum: 1
            maximum: 150
            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
        - in: query
          name: cursor
          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.
          schema:
            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.
            example: 12345678-abcd-abcd-example-1234567890ab
        - in: query
          name: status
          description: Filter for vendors that are active, inactive, or both.
          schema:
            type: string
            enum:
              - active
              - all
              - inactive
            default: active
            description: Filter for vendors that are active, inactive, or both.
            example: active
        - in: query
          name: updatedAfter
          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.
          schema:
            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.
            example: 2025-01-01T12:34:56.000Z
        - in: query
          name: updatedBefore
          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.
          schema:
            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.
            example: 2025-02-01T12:34:56.000Z
        - in: query
          name: nameContains
          description: >-
            Filter for vendors whose `name` contains this substring,
            case-insensitive.


            **NOTE**: If you use this parameter, you cannot also use
            `nameStartsWith` or `nameEndsWith`.
          schema:
            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`.
            example: ABC
        - in: query
          name: nameStartsWith
          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`.
          schema:
            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`.
            example: ABC
        - in: query
          name: nameEndsWith
          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`.
          schema:
            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`.
            example: ABC
        - in: query
          name: nameFrom
          description: >-
            Filter for vendors whose `name` is alphabetically greater than or
            equal to this value.
          schema:
            type: string
            description: >-
              Filter for vendors whose `name` is alphabetically greater than or
              equal to this value.
            example: A
        - in: query
          name: nameTo
          description: >-
            Filter for vendors whose `name` is alphabetically less than or equal
            to this value.
          schema:
            type: string
            description: >-
              Filter for vendors whose `name` is alphabetically less than or
              equal to this value.
            example: Z
        - in: query
          name: totalBalance
          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.
          schema:
            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.
            example: '123.45'
        - in: query
          name: totalBalanceGreaterThan
          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.
          schema:
            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.
            example: '123.45'
        - in: query
          name: totalBalanceGreaterThanOrEqualTo
          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.
          schema:
            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.
            example: '123.45'
        - in: query
          name: totalBalanceLessThan
          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.
          schema:
            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.
            example: '123.45'
        - in: query
          name: totalBalanceLessThanOrEqualTo
          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.
          schema:
            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.
            example: '123.45'
        - in: query
          name: currencyIds
          description: Filter for vendors in these currencies.
          schema:
            type: array
            items:
              type: string
            description: Filter for vendors in these currencies.
            example:
              - 80000001-1234567890
        - in: query
          name: classIds
          description: >-
            Filter for vendors of these classes. A class is a way end-users can
            categorize vendors in QuickBooks.
          schema:
            type: array
            items:
              type: string
            description: >-
              Filter for vendors of these classes. A class is a way end-users
              can categorize vendors in QuickBooks.
            example:
              - 80000001-1234567890
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns a list of vendors.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          content:
            application/json:
              schema:
                type: object
                properties:
                  objectType:
                    type: string
                    const: list
                    description: The type of object. This value is always `"list"`.
                    example: 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:
                    type:
                      - string
                      - '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:
                    type:
                      - number
                      - '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
          description: The ID of the End-User to receive this request.
          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
      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:
                  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
                  default: true
                classId:
                  type: string
                  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
                companyName:
                  type: string
                  description: >-
                    The name of the company associated with this vendor. This
                    name is used on invoices, checks, and other forms.
                  example: Acme Corporation
                salutation:
                  type: string
                  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:
                  type: string
                  maxLength: 25
                  description: |-
                    The first name of the contact person for this vendor.

                    Maximum length: 25 characters.
                  example: John
                middleName:
                  type: string
                  maxLength: 5
                  description: |-
                    The middle name of the contact person for this vendor.

                    Maximum length: 5 characters.
                  example: A.
                lastName:
                  type: string
                  maxLength: 25
                  description: |-
                    The last name of the contact person for this vendor.

                    Maximum length: 25 characters.
                  example: Doe
                jobTitle:
                  type: string
                  description: The job title of the contact person for this vendor.
                  example: Purchasing Manager
                billingAddress:
                  type: object
                  properties:
                    line1:
                      type: string
                      maxLength: 41
                      description: >-
                        The first line of the address (e.g., street, PO Box, or
                        company name).


                        Maximum length: 41 characters.
                      example: Conductor Labs Inc.
                    line2:
                      type: string
                      maxLength: 41
                      description: >-
                        The second line of the address, if needed (e.g.,
                        apartment, suite, unit, or building).


                        Maximum length: 41 characters.
                      example: 540 Market St.
                    line3:
                      type: string
                      maxLength: 41
                      description: |-
                        The third line of the address, if needed.

                        Maximum length: 41 characters.
                      example: Suite 100
                    line4:
                      type: string
                      maxLength: 41
                      description: |-
                        The fourth line of the address, if needed.

                        Maximum length: 41 characters.
                      example: ''
                    line5:
                      type: string
                      maxLength: 41
                      description: |-
                        The fifth line of the address, if needed.

                        Maximum length: 41 characters.
                      example: ''
                    city:
                      type: string
                      maxLength: 31
                      description: >-
                        The city, district, suburb, town, or village name of the
                        address.


                        Maximum length: 31 characters.
                      example: San Francisco
                    state:
                      type: string
                      maxLength: 21
                      description: >-
                        The state, county, province, or region name of the
                        address.


                        Maximum length: 21 characters.
                      example: CA
                    postalCode:
                      type: string
                      maxLength: 13
                      description: |-
                        The postal code or ZIP code of the address.

                        Maximum length: 13 characters.
                      example: '94110'
                    country:
                      type: string
                      description: The country name of the address.
                      example: United States
                    note:
                      type: string
                      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
                  additionalProperties: false
                  description: The vendor's billing address.
                shippingAddress:
                  type: object
                  properties:
                    line1:
                      type: string
                      maxLength: 41
                      description: >-
                        The first line of the address (e.g., street, PO Box, or
                        company name).


                        Maximum length: 41 characters.
                      example: Conductor Labs Inc.
                    line2:
                      type: string
                      maxLength: 41
                      description: >-
                        The second line of the address, if needed (e.g.,
                        apartment, suite, unit, or building).


                        Maximum length: 41 characters.
                      example: 540 Market St.
                    line3:
                      type: string
                      maxLength: 41
                      description: |-
                        The third line of the address, if needed.

                        Maximum length: 41 characters.
                      example: Suite 100
                    line4:
                      type: string
                      maxLength: 41
                      description: |-
                        The fourth line of the address, if needed.

                        Maximum length: 41 characters.
                      example: ''
                    line5:
                      type: string
                      maxLength: 41
                      description: |-
                        The fifth line of the address, if needed.

                        Maximum length: 41 characters.
                      example: ''
                    city:
                      type: string
                      maxLength: 31
                      description: >-
                        The city, district, suburb, town, or village name of the
                        address.


                        Maximum length: 31 characters.
                      example: San Francisco
                    state:
                      type: string
                      maxLength: 21
                      description: >-
                        The state, county, province, or region name of the
                        address.


                        Maximum length: 21 characters.
                      example: CA
                    postalCode:
                      type: string
                      maxLength: 13
                      description: |-
                        The postal code or ZIP code of the address.

                        Maximum length: 13 characters.
                      example: '94110'
                    country:
                      type: string
                      description: The country name of the address.
                      example: United States
                    note:
                      type: string
                      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
                  additionalProperties: false
                  description: The vendor's shipping address.
                phone:
                  type: string
                  description: The vendor's primary telephone number.
                  example: +1-555-123-4567
                alternatePhone:
                  type: string
                  description: The vendor's alternate telephone number.
                  example: +1-555-987-6543
                fax:
                  type: string
                  description: The vendor's fax number.
                  example: +1-555-555-1212
                email:
                  type: string
                  description: The vendor's email address.
                  example: vendor@example.com
                ccEmail:
                  type: string
                  description: >-
                    An email address to carbon copy (CC) on communications with
                    this vendor.
                  example: manager@example.com
                contact:
                  type: string
                  description: The name of the primary contact person for this vendor.
                  example: Jane Smith
                alternateContact:
                  type: string
                  description: The name of a alternate contact person for this vendor.
                  example: Bob Johnson
                customContactFields:
                  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
                  minItems: 1
                  description: >-
                    Additional custom contact fields for this vendor, such as
                    phone numbers or email addresses.
                additionalContacts:
                  type: array
                  items:
                    type: object
                    properties:
                      salutation:
                        type: string
                        description: >-
                          The contact's formal salutation title that precedes
                          their name, such as "Mr.", "Ms.", or "Dr.".
                        example: Dr.
                      firstName:
                        type: string
                        maxLength: 25
                        description: |-
                          The contact's first name.

                          Maximum length: 25 characters.
                        example: John
                      middleName:
                        type: string
                        maxLength: 5
                        description: |-
                          The contact's middle name.

                          Maximum length: 5 characters.
                        example: A.
                      lastName:
                        type: string
                        maxLength: 25
                        description: |-
                          The contact's last name.

                          Maximum length: 25 characters.
                        example: Doe
                      jobTitle:
                        type: string
                        description: The contact's job title.
                        example: Purchasing Manager
                      customContactFields:
                        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
                        minItems: 1
                        description: >-
                          Additional custom contact fields for this contact,
                          such as phone numbers or email addresses.
                    required:
                      - firstName
                    additionalProperties: false
                  minItems: 1
                  description: Additional alternate contacts for this vendor.
                nameOnCheck:
                  type: string
                  description: >-
                    The vendor's name as it should appear on checks issued to
                    this vendor.
                  example: Acme Supplies Ltd.
                accountNumber:
                  type: string
                  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:
                  type: string
                  description: A note or comment about this vendor.
                  example: Preferred vendor for office supplies.
                additionalNotes:
                  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
                  minItems: 1
                  description: Additional notes about this vendor.
                vendorTypeId:
                  type: string
                  description: >-
                    The vendor's type, used for categorizing vendors into
                    meaningful segments, such as industry or region.
                  example: 80000001-1234567890
                termsId:
                  type: string
                  description: >-
                    The vendor's payment terms, defining when payment is due and
                    any applicable discounts.
                  example: 80000001-1234567890
                creditLimit:
                  type: string
                  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:
                  type: string
                  description: The vendor's tax identification number (e.g., EIN or SSN).
                  example: 12-3456789
                isEligibleFor1099:
                  type: boolean
                  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
                openingBalance:
                  type: string
                  description: >-
                    The opening balance of this vendor's account, indicating the
                    amount owed to this vendor, represented as a decimal string.
                  example: '1000.00'
                openingBalanceDate:
                  type: string
                  format: date
                  description: >-
                    The date of the opening balance of this vendor, in ISO 8601
                    format (YYYY-MM-DD).
                  example: '2023-01-01'
                billingRateId:
                  type: string
                  description: >-
                    The vendor's billing rate, used to override service item
                    rates in time tracking activities.
                  example: 80000001-1234567890
                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:
                  type: string
                  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. If QuickBooks is not set up to charge sales tax
                    (via the "Do You Charge Sales Tax?" preference), it will
                    assign the default non-taxable code to all sales.
                  example: 80000001-1234567890
                salesTaxCountry:
                  type: string
                  enum:
                    - australia
                    - canada
                    - uk
                    - us
                  description: >-
                    The country for which sales tax is collected for this
                    vendor.
                  example: us
                isSalesTaxAgency:
                  type: boolean
                  description: Indicates whether this vendor is a sales tax agency.
                  example: false
                salesTaxReturnId:
                  type: string
                  description: >-
                    The vendor's sales tax return information, used for tracking
                    and reporting sales tax liabilities.
                  example: 80000001-1234567890
                taxRegistrationNumber:
                  type: string
                  description: >-
                    The vendor's tax registration number, for use in Canada or
                    the UK.
                  example: GB123456789
                reportingPeriod:
                  type: string
                  enum:
                    - monthly
                    - quarterly
                  description: >-
                    The vendor's tax reporting period, for use in Canada or the
                    UK.
                  example: quarterly
                isTrackingPurchaseTax:
                  type: boolean
                  description: >-
                    Indicates whether tax is tracked on purchases for this
                    vendor, for use in Canada or the UK.
                  example: true
                purchaseTaxAccountId:
                  type: string
                  description: >-
                    The account used for tracking taxes on purchases for this
                    vendor, for use in Canada or the UK.
                  example: 80000001-1234567890
                isTrackingSalesTax:
                  type: boolean
                  description: >-
                    Indicates whether tax is tracked on sales for this vendor,
                    for use in Canada or the UK.
                  example: true
                salesTaxAccountId:
                  type: string
                  description: >-
                    The account used for tracking taxes on sales for this
                    vendor, for use in Canada or the UK.
                  example: 80000001-1234567890
                isCompoundingTax:
                  type: boolean
                  description: >-
                    Indicates whether tax is charged on top of tax for this
                    vendor, for use in Canada or the UK.
                  example: false
                defaultExpenseAccountIds:
                  type: array
                  items:
                    type: string
                  minItems: 1
                  description: >-
                    The expense accounts to prefill when entering bills for this
                    vendor.
                  example:
                    - 80000001-1234567890
                currencyId:
                  type: string
                  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
              required:
                - name
              additionalProperties: false
      responses:
        '200':
          description: Returns the newly created vendor.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: path
          name: id
          description: The QuickBooks-assigned unique identifier of the vendor to retrieve.
          schema:
            type: string
            description: >-
              The QuickBooks-assigned unique identifier of the vendor to
              retrieve.
            example: 80000001-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: Returns the specified vendor.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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: path
          name: id
          description: The QuickBooks-assigned unique identifier of the vendor to update.
          schema:
            type: string
            description: The QuickBooks-assigned unique identifier of the vendor to update.
            example: 80000001-1234567890
          required: true
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          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
      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:
                  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:
                  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
                classId:
                  type: string
                  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
                companyName:
                  type: string
                  description: >-
                    The name of the company associated with this vendor. This
                    name is used on invoices, checks, and other forms.
                  example: Acme Corporation
                salutation:
                  type: string
                  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:
                  type: string
                  maxLength: 25
                  description: |-
                    The first name of the contact person for this vendor.

                    Maximum length: 25 characters.
                  example: John
                middleName:
                  type: string
                  maxLength: 5
                  description: |-
                    The middle name of the contact person for this vendor.

                    Maximum length: 5 characters.
                  example: A.
                lastName:
                  type: string
                  maxLength: 25
                  description: |-
                    The last name of the contact person for this vendor.

                    Maximum length: 25 characters.
                  example: Doe
                jobTitle:
                  type: string
                  description: The job title of the contact person for this vendor.
                  example: Purchasing Manager
                billingAddress:
                  type: object
                  properties:
                    line1:
                      type: string
                      maxLength: 41
                      description: >-
                        The first line of the address (e.g., street, PO Box, or
                        company name).


                        Maximum length: 41 characters.
                      example: Conductor Labs Inc.
                    line2:
                      type: string
                      maxLength: 41
                      description: >-
                        The second line of the address, if needed (e.g.,
                        apartment, suite, unit, or building).


                        Maximum length: 41 characters.
                      example: 540 Market St.
                    line3:
                      type: string
                      maxLength: 41
                      description: |-
                        The third line of the address, if needed.

                        Maximum length: 41 characters.
                      example: Suite 100
                    line4:
                      type: string
                      maxLength: 41
                      description: |-
                        The fourth line of the address, if needed.

                        Maximum length: 41 characters.
                      example: ''
                    line5:
                      type: string
                      maxLength: 41
                      description: |-
                        The fifth line of the address, if needed.

                        Maximum length: 41 characters.
                      example: ''
                    city:
                      type: string
                      maxLength: 31
                      description: >-
                        The city, district, suburb, town, or village name of the
                        address.


                        Maximum length: 31 characters.
                      example: San Francisco
                    state:
                      type: string
                      maxLength: 21
                      description: >-
                        The state, county, province, or region name of the
                        address.


                        Maximum length: 21 characters.
                      example: CA
                    postalCode:
                      type: string
                      maxLength: 13
                      description: |-
                        The postal code or ZIP code of the address.

                        Maximum length: 13 characters.
                      example: '94110'
                    country:
                      type: string
                      description: The country name of the address.
                      example: United States
                    note:
                      type: string
                      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
                  additionalProperties: false
                  description: The vendor's billing address.
                shippingAddress:
                  type: object
                  properties:
                    line1:
                      type: string
                      maxLength: 41
                      description: >-
                        The first line of the address (e.g., street, PO Box, or
                        company name).


                        Maximum length: 41 characters.
                      example: Conductor Labs Inc.
                    line2:
                      type: string
                      maxLength: 41
                      description: >-
                        The second line of the address, if needed (e.g.,
                        apartment, suite, unit, or building).


                        Maximum length: 41 characters.
                      example: 540 Market St.
                    line3:
                      type: string
                      maxLength: 41
                      description: |-
                        The third line of the address, if needed.

                        Maximum length: 41 characters.
                      example: Suite 100
                    line4:
                      type: string
                      maxLength: 41
                      description: |-
                        The fourth line of the address, if needed.

                        Maximum length: 41 characters.
                      example: ''
                    line5:
                      type: string
                      maxLength: 41
                      description: |-
                        The fifth line of the address, if needed.

                        Maximum length: 41 characters.
                      example: ''
                    city:
                      type: string
                      maxLength: 31
                      description: >-
                        The city, district, suburb, town, or village name of the
                        address.


                        Maximum length: 31 characters.
                      example: San Francisco
                    state:
                      type: string
                      maxLength: 21
                      description: >-
                        The state, county, province, or region name of the
                        address.


                        Maximum length: 21 characters.
                      example: CA
                    postalCode:
                      type: string
                      maxLength: 13
                      description: |-
                        The postal code or ZIP code of the address.

                        Maximum length: 13 characters.
                      example: '94110'
                    country:
                      type: string
                      description: The country name of the address.
                      example: United States
                    note:
                      type: string
                      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
                  additionalProperties: false
                  description: The vendor's shipping address.
                phone:
                  type: string
                  description: The vendor's primary telephone number.
                  example: +1-555-123-4567
                alternatePhone:
                  type: string
                  description: The vendor's alternate telephone number.
                  example: +1-555-987-6543
                fax:
                  type: string
                  description: The vendor's fax number.
                  example: +1-555-555-1212
                email:
                  type: string
                  description: The vendor's email address.
                  example: vendor@example.com
                ccEmail:
                  type: string
                  description: >-
                    An email address to carbon copy (CC) on communications with
                    this vendor.
                  example: manager@example.com
                contact:
                  type: string
                  description: The name of the primary contact person for this vendor.
                  example: Jane Smith
                alternateContact:
                  type: string
                  description: The name of a alternate contact person for this vendor.
                  example: Bob Johnson
                customContactFields:
                  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
                  minItems: 1
                  description: >-
                    Additional custom contact fields for this vendor, such as
                    phone numbers or email addresses.
                additionalContacts:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                        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:
                        type: string
                        description: >-
                          The contact's formal salutation title that precedes
                          their name, such as "Mr.", "Ms.", or "Dr.".
                        example: Dr.
                      firstName:
                        type: string
                        maxLength: 25
                        description: |-
                          The contact's first name.

                          Maximum length: 25 characters.
                        example: John
                      middleName:
                        type: string
                        maxLength: 5
                        description: |-
                          The contact's middle name.

                          Maximum length: 5 characters.
                        example: A.
                      lastName:
                        type: string
                        maxLength: 25
                        description: |-
                          The contact's last name.

                          Maximum length: 25 characters.
                        example: Doe
                      jobTitle:
                        type: string
                        description: The contact's job title.
                        example: Purchasing Manager
                      customContactFields:
                        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
                        minItems: 1
                        description: >-
                          Additional custom contact fields for this contact,
                          such as phone numbers or email addresses.
                    required:
                      - id
                      - revisionNumber
                    additionalProperties: false
                  minItems: 1
                  description: Additional alternate contacts for this vendor.
                nameOnCheck:
                  type: string
                  description: >-
                    The vendor's name as it should appear on checks issued to
                    this vendor.
                  example: Acme Supplies Ltd.
                accountNumber:
                  type: string
                  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:
                  type: string
                  description: A note or comment about this vendor.
                  example: Preferred vendor for office supplies.
                additionalNotes:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: number
                        description: The ID of the note to update.
                        example: 1
                      note:
                        type: string
                        description: The text of this note.
                        example: This is a fun note.
                    required:
                      - id
                      - note
                    additionalProperties: false
                  minItems: 1
                  description: Additional notes about this vendor.
                vendorTypeId:
                  type: string
                  description: >-
                    The vendor's type, used for categorizing vendors into
                    meaningful segments, such as industry or region.
                  example: 80000001-1234567890
                termsId:
                  type: string
                  description: >-
                    The vendor's payment terms, defining when payment is due and
                    any applicable discounts.
                  example: 80000001-1234567890
                creditLimit:
                  type: string
                  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:
                  type: string
                  description: The vendor's tax identification number (e.g., EIN or SSN).
                  example: 12-3456789
                isEligibleFor1099:
                  type: boolean
                  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
                billingRateId:
                  type: string
                  description: >-
                    The vendor's billing rate, used to override service item
                    rates in time tracking activities.
                  example: 80000001-1234567890
                salesTaxCodeId:
                  type: string
                  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. If QuickBooks is not set up to charge sales tax
                    (via the "Do You Charge Sales Tax?" preference), it will
                    assign the default non-taxable code to all sales.
                  example: 80000001-1234567890
                salesTaxCountry:
                  type: string
                  enum:
                    - australia
                    - canada
                    - uk
                    - us
                  description: >-
                    The country for which sales tax is collected for this
                    vendor.
                  example: us
                isSalesTaxAgency:
                  type: boolean
                  description: Indicates whether this vendor is a sales tax agency.
                  example: false
                salesTaxReturnId:
                  type: string
                  description: >-
                    The vendor's sales tax return information, used for tracking
                    and reporting sales tax liabilities.
                  example: 80000001-1234567890
                taxRegistrationNumber:
                  type: string
                  description: >-
                    The vendor's tax registration number, for use in Canada or
                    the UK.
                  example: GB123456789
                reportingPeriod:
                  type: string
                  enum:
                    - monthly
                    - quarterly
                  description: >-
                    The vendor's tax reporting period, for use in Canada or the
                    UK.
                  example: quarterly
                isTrackingPurchaseTax:
                  type: boolean
                  description: >-
                    Indicates whether tax is tracked on purchases for this
                    vendor, for use in Canada or the UK.
                  example: true
                purchaseTaxAccountId:
                  type: string
                  description: >-
                    The account used for tracking taxes on purchases for this
                    vendor, for use in Canada or the UK.
                  example: 80000001-1234567890
                isTrackingSalesTax:
                  type: boolean
                  description: >-
                    Indicates whether tax is tracked on sales for this vendor,
                    for use in Canada or the UK.
                  example: true
                salesTaxAccountId:
                  type: string
                  description: >-
                    The account used for tracking taxes on sales for this
                    vendor, for use in Canada or the UK.
                  example: 80000001-1234567890
                isCompoundingTax:
                  type: boolean
                  description: >-
                    Indicates whether tax is charged on top of tax for this
                    vendor, for use in Canada or the UK.
                  example: false
                defaultExpenseAccountIds:
                  type: array
                  items:
                    type: string
                  minItems: 1
                  description: >-
                    The expense accounts to prefill when entering bills for this
                    vendor.
                  example:
                    - 80000001-1234567890
                currencyId:
                  type: string
                  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
              required:
                - revisionNumber
              additionalProperties: false
      responses:
        '200':
          description: Returns the updated vendor.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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
          description: The ID of the End-User to receive this request.
          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
      responses:
        '200':
          description: >-
            Returns an object with the duration of the health check in
            milliseconds. Returns an error if the health check fails, for which
            we strongly recommend displaying the property
            `error.userFacingMessage` to your end-user in your app.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          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
      x-codeSamples:
        - lang: JavaScript
          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:
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: >-
        Your Conductor secret key using Bearer auth (e.g., `"Authorization:
        Bearer {{YOUR_SECRET_KEY}}"`).
  schemas:
    Error:
      type: object
      properties:
        message:
          type: string
          description: The developer error message for your logs.
          example: >-
            QBD Connection Error (0x80040420): The QuickBooks user has denied
            access.
        userFacingMessage:
          type: string
          description: >-
            The user-friendly error message, written specifically for displaying
            to your end-users in your app's UI.


            This value exists for _every_ error. E.g., a QBD connection error
            might recommend the end-user to confirm their QuickBooks Desktop is
            open and that they're logged in. But if a Conductor API key is
            expired, e.g., this message will be masked and just say _"An
            internal server error occurred. Please try again."_
          example: >-
            We could not connect to QuickBooks Desktop because we must
            re-authorize our connection. To fix this, open QuickBooks Desktop,
            log in as Admin, navigate to 'Edit > Preferences > Integrated
            Applications', click 'Company Preferences', select our app, click
            'Properties...', ensure 'Allow this application to log in
            automatically' is checked, then click 'OK'. Then 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: INTEGRATION_CONNECTION_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: QBD_CONNECTION_ERROR
        integrationCode:
          type: string
          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.


            The integration's corresponding error message for this code is in
            `error.message`.
          example: '0x80040420'
        httpStatusCode:
          type: number
          description: The HTTP status code of the response that returned this error.
          example: 502
        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
    ErrorResponse:
      type: object
      properties:
        error:
          $ref: '#/components/schemas/Error'
      required:
        - error
      additionalProperties: false
    auth_session:
      type: object
      properties:
        id:
          type: string
          description: The unique identifier for this auth session.
          example: auth_sess_1234567abcdefg
        objectType:
          type: string
          const: auth_session
          description: The type of object. This value is always `"auth_session"`.
          example: auth_session
        createdAt:
          type: string
          description: The date and time when this auth session record was created.
          example: 2024-01-01T12:34:56.789Z
        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:
          type: string
          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
        redirectUrl:
          type:
            - string
            - '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
    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:
          type: string
          const: end_user
          description: The type of object. This value is always `"end_user"`.
          example: end_user
        createdAt:
          type: string
          description: The date and time when this end-user record was created.
          example: 2024-01-01T12:34:56.789Z
        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
    integration_connection:
      type: object
      properties:
        id:
          type: string
          description: The unique identifier for this integration connection.
          example: int_conn_1234567abcdefg
        objectType:
          type: string
          const: integration_connection
          description: The type of object. This value is always `"integration_connection"`.
          example: integration_connection
        createdAt:
          type: string
          description: >-
            The date and time when this integration connection record was
            created.
          example: 2024-01-01T12:34:56.789Z
        integrationSlug:
          type: string
          enum:
            - quickbooks_desktop
          description: The identifier of the third-party platform to integrate.
        lastRequestAt:
          type:
            - string
            - 'null'
          description: >-
            The date and time of your last API request to this integration
            connection.
          example: 2024-01-01T12:34:56.789Z
        lastSuccessfulRequestAt:
          type:
            - string
            - '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
    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:
          type:
            - string
            - '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:
          type: string
          const: qbd_account
          description: The type of object. This value is always `"qbd_account"`.
          example: 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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - string
            - 'null'
          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
            - null
          description: >-
            Indicates if this account is a special account automatically created
            by QuickBooks for specific purposes.
          example: undeposited_funds
        isTaxAccount:
          type:
            - boolean
            - 'null'
          description: Indicates whether this account is used for tracking taxes.
          example: true
        accountNumber:
          type:
            - string
            - '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:
          type:
            - string
            - '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:
          type:
            - string
            - 'null'
          description: A description of this account.
          example: >-
            Accounts-payable are the amounts owed to suppliers for goods and
            services purchased on credit.
        balance:
          type:
            - string
            - '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:
          type:
            - string
            - '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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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. If QuickBooks is not
            set up to charge sales tax (via the "Do You Charge Sales Tax?"
            preference), it will assign the default non-taxable code to all
            sales.
          example:
            id: 80000001-1234567890
            fullName: Non
        taxLineDetails:
          oneOf:
            - $ref: '#/components/schemas/qbd_tax_line_info'
            - type: 'null'
          description: The account's tax line details, used for tax reporting purposes.
        cashFlowClassification:
          type:
            - string
            - 'null'
          enum:
            - financing
            - investing
            - none
            - not_applicable
            - operating
            - 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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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'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:
          type:
            - string
            - '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:
          type: string
          const: qbd_bill_check_payment
          description: The type of object. This value is always `"qbd_bill_check_payment"`.
          example: 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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 bill check payment
            is assigned, used to track the amount owed. If not specified,
            QuickBooks Desktop will use its default A/P account.


            **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:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - number
            - '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:
          type:
            - string
            - '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:
          type:
            - string
            - '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:
          type:
            - string
            - 'null'
          description: A memo or note for this bill check payment.
          example: Payment for office supplies - Invoice INV-1234
        address:
          oneOf:
            - $ref: '#/components/schemas/qbd_address'
            - type: 'null'
          description: The address that is printed on the bill check payment.
        isQueuedForPrint:
          type:
            - boolean
            - 'null'
          description: >-
            Indicates whether this bill check payment is included in the queue
            of documents for QuickBooks to print.
          example: true
        externalId:
          type:
            - string
            - 'null'
          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
        appliedToTransactions:
          type: array
          items:
            $ref: '#/components/schemas/qbd_receivable_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:
          type:
            - string
            - 'null'
          description: >-
            The first line of the address (e.g., street, PO Box, or company
            name).
          example: Conductor Labs Inc.
        line2:
          type:
            - string
            - 'null'
          description: >-
            The second line of the address, if needed (e.g., apartment, suite,
            unit, or building).
          example: 540 Market St.
        line3:
          type:
            - string
            - 'null'
          description: The third line of the address, if needed.
          example: Suite 100
        line4:
          type:
            - string
            - 'null'
          description: The fourth line of the address, if needed.
          example: ''
        line5:
          type:
            - string
            - 'null'
          description: The fifth line of the address, if needed.
          example: ''
        city:
          type:
            - string
            - 'null'
          description: The city, district, suburb, town, or village name of the address.
          example: San Francisco
        state:
          type:
            - string
            - 'null'
          description: The state, county, province, or region name of the address.
          example: CA
        postalCode:
          type:
            - string
            - 'null'
          description: The postal code or ZIP code of the address.
          example: '94110'
        country:
          type:
            - string
            - 'null'
          description: The country name of the address.
          example: United States
        note:
          type:
            - string
            - '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_receivable_transaction:
      type: object
      properties:
        transactionId:
          type: string
          description: >-
            The ID of the receivable 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
          description: The type of transaction for this receivable transaction.
          example: invoice
        transactionDate:
          type:
            - string
            - 'null'
          format: date
          description: >-
            The date of this receivable transaction, in ISO 8601 format
            (YYYY-MM-DD).
          example: '2024-10-01'
        refNumber:
          type:
            - string
            - 'null'
          description: >-
            The case-sensitive user-defined reference number for this receivable
            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: PAYMENT-1234
        balanceRemaining:
          type:
            - string
            - 'null'
          description: >-
            The outstanding balance of this receivable transaction after
            applying any credits or payments. Represented as a decimal string.
          example: '100.00'
        amount:
          type:
            - string
            - 'null'
          description: >-
            The monetary amount of this receivable transaction, represented as a
            decimal string.
          example: '1000.00'
        discountAmount:
          type:
            - string
            - 'null'
          description: >-
            The monetary amount by which to reduce the receivable transaction's
            receivable amount, represented as a decimal string.
          example: '50.00'
        discountAccount:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 financial account used to track this receivable transaction's
            discount.
          example:
            id: 80000001-1234567890
            fullName: Discount Account
        discountClass:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 class used to track this receivable transaction's discount.
          example:
            id: 80000001-1234567890
            fullName: Discounts
        linkedTransactions:
          type: array
          items:
            $ref: '#/components/schemas/qbd_linked_transaction'
          description: >-
            The receivable 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 receivable
            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 Receivable 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:
          type: string
          const: qbd_linked_transaction
          description: The type of object. This value is always `"qbd_linked_transaction"`.
          example: 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:
          type:
            - string
            - '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:
          type:
            - string
            - 'null'
          enum:
            - amount
            - quantity
            - 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:
          type:
            - string
            - '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:
          type: string
          const: qbd_bill_credit_card_payment
          description: >-
            The type of object. This value is always
            `"qbd_bill_credit_card_payment"`.
          example: 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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 bill credit card
            payment is assigned, used to track the amount owed. If not
            specified, QuickBooks Desktop will use its default A/P account.


            **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:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - number
            - '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:
          type:
            - string
            - '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:
          type:
            - string
            - '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:
          type:
            - string
            - 'null'
          description: A memo or note for this bill credit card payment.
          example: Payment for office supplies - Invoice INV-1234
        externalId:
          type:
            - string
            - 'null'
          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
        appliedToTransactions:
          type: array
          items:
            $ref: '#/components/schemas/qbd_receivable_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:
          type: string
          const: qbd_bill
          description: The type of object. This value is always `"qbd_bill"`.
          example: 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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 bill for goods or services purchased.
          example:
            id: 80000001-1234567890
            fullName: Acme Supplies Ltd.
        vendorAddress:
          oneOf:
            - $ref: '#/components/schemas/qbd_address'
            - type: 'null'
          description: The address of the vendor who sent this bill.
        payablesAccount:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 bill is assigned,
            used to track the amount owed. If not specified, QuickBooks Desktop
            will use its default A/P account.


            **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:
          type:
            - string
            - 'null'
          format: date
          description: >-
            The date by which this bill must be paid, in ISO 8601 format
            (YYYY-MM-DD).
          example: '2024-10-31'
        amountDue:
          type:
            - string
            - '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. It also equals
            `openAmount` plus any credits or discounts.
          example: '1000.00'
        currency:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - number
            - '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:
          type:
            - string
            - '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:
          type:
            - string
            - '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:
          type:
            - boolean
            - 'null'
          description: >-
            Indicates whether this bill has not been completed or is in a draft
            version.
          example: false
        terms:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 bill's payment terms, defining when payment is due and any
            applicable discounts.
          example:
            id: 80000001-1234567890
            fullName: Net 30
        memo:
          type:
            - string
            - '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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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. If QuickBooks is not
            set up to charge sales tax (via the "Do You Charge Sales Tax?"
            preference), it will assign the default non-taxable code to all
            sales.
          example:
            id: 80000001-1234567890
            fullName: Non
        isPaid:
          type:
            - boolean
            - 'null'
          description: >-
            Indicates whether this bill has been paid in full. When `true`,
            `openAmount` will be 0.
          example: false
        externalId:
          type:
            - string
            - 'null'
          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
        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:
          type:
            - string
            - '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**: This field is almost always present, but due to a known
            QBD bug, it can be absent in rare cases. If you ever encounter
            `openAmount` as `null`, we recommend the following fallback
            procedure: Re-query the bills with `includeLinkedTransactions=true`
            and compute a fallback open amount as `amountDue` 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 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 or item receipts.
    qbd_expense_line:
      type: object
      properties:
        id:
          type: string
          description: >-
            The unique identifier assigned by QuickBooks to this expense line.
            This ID is unique across all transaction line types.
          example: 456DEF-1234567890
        objectType:
          type: string
          const: qbd_expense_line
          description: The type of object. This value is always `"qbd_expense_line"`.
          example: qbd_expense_line
        account:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - string
            - 'null'
          description: >-
            The monetary amount of this expense line, represented as a decimal
            string.
          example: '1000.00'
        memo:
          type:
            - string
            - 'null'
          description: A memo or note for this expense line.
          example: New office chair
        payee:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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: >-
            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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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. If QuickBooks is not
            set up to charge sales tax (via the "Do You Charge Sales Tax?"
            preference), it will assign the default non-taxable code to all
            sales.
          example:
            id: 80000001-1234567890
            fullName: Non
        billingStatus:
          type:
            - string
            - 'null'
          enum:
            - billable
            - has_been_billed
            - not_billable
            - null
          description: The billing status of this expense line.
          example: billable
        salesRepresentative:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type: string
          const: qbd_item_line
          description: The type of object. This value is always `"qbd_item_line"`.
          example: qbd_item_line
        item:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 site location where inventory for the item associated with this
            item line is stored.
          example:
            id: 80000001-1234567890
            fullName: Main Warehouse
        inventorySiteLocation:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - string
            - '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:
          type:
            - string
            - '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:
          type:
            - string
            - 'null'
          format: date
          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'
        description:
          type:
            - string
            - 'null'
          description: A description of this item line.
          example: High-quality widget with custom engraving
        quantity:
          type:
            - number
            - '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:
          type:
            - string
            - '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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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: >-
            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:
          type:
            - string
            - '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:
          type:
            - string
            - '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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 item line.
          example:
            id: 80000001-1234567890
            fullName: Acme Corporation
        class:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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. If QuickBooks is not
            set up to charge sales tax (via the "Do You Charge Sales Tax?"
            preference), it will assign the default non-taxable code to all
            sales.
          example:
            id: 80000001-1234567890
            fullName: Non
        billingStatus:
          type:
            - string
            - 'null'
          enum:
            - billable
            - has_been_billed
            - not_billable
            - null
          description: The billing status of this item line.
          example: billable
        salesRepresentative:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type: string
          const: qbd_item_group_line
          description: The type of object. This value is always `"qbd_item_group_line"`.
          example: qbd_item_group_line
        itemGroup:
          type: object
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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:
          type:
            - string
            - 'null'
          description: A description of this item group line.
          example: Standard widget bulk package
        quantity:
          type:
            - number
            - '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:
          type:
            - string
            - '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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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: >-
            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_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:
          type: string
          const: qbd_build_assembly
          description: The type of object. This value is always `"qbd_build_assembly"`.
          example: 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:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 site location where inventory for the item associated with this
            build assembly is stored.
          example:
            id: 80000001-1234567890
            fullName: Main Warehouse
        inventorySiteLocation:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - string
            - '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:
          type:
            - string
            - '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:
          type:
            - string
            - 'null'
          format: date
          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'
        transactionDate:
          type: string
          format: date
          description: The date of this build assembly, in ISO 8601 format (YYYY-MM-DD).
          example: '2024-10-01'
        refNumber:
          type:
            - string
            - '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:
          type:
            - string
            - 'null'
          description: A memo or note for this build assembly.
          example: Assembled 25 units of Model ABC-123 Office Chair
        isPending:
          type:
            - boolean
            - '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:
          type:
            - string
            - 'null'
          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
        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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 site location where inventory for the item associated with this
            component item line is stored.
          example:
            id: 80000001-1234567890
            fullName: Main Warehouse
        inventorySiteLocation:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - string
            - '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:
          type:
            - string
            - '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:
          type:
            - string
            - 'null'
          format: date
          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-31'
        description:
          type:
            - string
            - 'null'
          description: A description of this component item line.
          example: Wood screws, 2-inch, stainless steel
        quantityOnHand:
          type:
            - number
            - 'null'
          description: >-
            The number of units of this component item line currently in
            inventory.
          example: 150
        quantityNeeded:
          type:
            - number
            - '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:
          type: string
          const: qbd_check
          description: The type of object. This value is always `"qbd_check"`.
          example: 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:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 person or company who will receive this check.
          example:
            id: 80000001-1234567890
            fullName: Corporate:Sales:Marketing
        refNumber:
          type:
            - string
            - '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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - number
            - '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:
          type:
            - string
            - '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:
          type:
            - string
            - 'null'
          description: The memo that is printed on this check.
          example: Payment for office supplies - Invoice INV-1234
        address:
          oneOf:
            - $ref: '#/components/schemas/qbd_address'
            - type: 'null'
          description: The address that is printed on the check.
        isPending:
          type:
            - boolean
            - 'null'
          description: Indicates whether this check has not been completed.
          example: false
        isQueuedForPrint:
          type:
            - boolean
            - 'null'
          description: >-
            Indicates whether this check is included in the queue of documents
            for QuickBooks to print.
          example: true
        salesTaxCode:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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. If QuickBooks is not
            set up to charge sales tax (via the "Do You Charge Sales Tax?"
            preference), it will assign the default non-taxable code to all
            sales.
          example:
            id: 80000001-1234567890
            fullName: Non
        externalId:
          type:
            - string
            - 'null'
          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
        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:
          type: string
          const: qbd_class
          description: The type of object. This value is always `"qbd_class"`.
          example: 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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - string
            - '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:
          type:
            - string
            - '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:
          oneOf:
            - $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:
          oneOf:
            - $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:
          oneOf:
            - $ref: '#/components/schemas/qbd_address'
            - type: 'null'
          description: The address where this company receives mail from its customers.
        phone:
          type:
            - string
            - 'null'
          description: The company's primary telephone number.
          example: +1-555-123-4567
        fax:
          type:
            - string
            - 'null'
          description: The company's fax number.
          example: +1-555-555-1212
        email:
          type:
            - string
            - 'null'
          description: The company's email address.
          example: company@example.com
        website:
          type:
            - string
            - 'null'
          description: The company's public website.
          example: https://www.johndoeplumbing.com
        fiscalYearStartMonth:
          type:
            - string
            - 'null'
          enum:
            - january
            - february
            - march
            - april
            - may
            - june
            - july
            - august
            - september
            - october
            - november
            - december
            - null
          description: >-
            The first month of this company's fiscal year, which determines the
            default date range for financial reports.
          example: january
        incomeTaxYearStartMonth:
          type:
            - string
            - 'null'
          enum:
            - january
            - february
            - march
            - april
            - may
            - june
            - july
            - august
            - september
            - october
            - november
            - december
            - null
          description: >-
            The first month of this company's income tax year, which determines
            the default date range for financial reports.
          example: january
        companyType:
          type:
            - string
            - 'null'
          description: >-
            The company type, which the QuickBooks user selected from a list
            when creating the company file.
          example: WholesaleDistributionandSales
        ein:
          type:
            - string
            - 'null'
          description: The company's Employer Identification Number.
          example: '123456789'
        ssn:
          type:
            - string
            - '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:
          type:
            - string
            - 'null'
          enum:
            - form_1040
            - form_1065
            - form_1120
            - form_1120s
            - form_990
            - form_990pf
            - form_990t
            - other_or_none
            - 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:
          oneOf:
            - $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:
          oneOf:
            - $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:
          type:
            - string
            - 'null'
          description: The domain of this subscribed service
          example: payroll.qb
        serviceStatus:
          type:
            - string
            - 'null'
          enum:
            - active
            - expired
            - never
            - pending
            - suspended
            - terminated
            - trial
            - 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:
          type:
            - string
            - '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:
          type: string
          const: qbd_credit_card_charge
          description: The type of object. This value is always `"qbd_credit_card_charge"`.
          example: 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:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - number
            - '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:
          type:
            - string
            - '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:
          type:
            - string
            - '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:
          type:
            - string
            - 'null'
          description: A memo or note for this credit card charge.
          example: Office supplies for Q3 marketing campaign
        salesTaxCode:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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. If QuickBooks is not
            set up to charge sales tax (via the "Do You Charge Sales Tax?"
            preference), it will assign the default non-taxable code to all
            sales.
          example:
            id: 80000001-1234567890
            fullName: Non
        externalId:
          type:
            - string
            - 'null'
          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
        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:
          type: string
          const: qbd_credit_card_credit
          description: The type of object. This value is always `"qbd_credit_card_credit"`.
          example: 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:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - number
            - '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:
          type:
            - string
            - '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:
          type:
            - string
            - '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:
          type:
            - string
            - 'null'
          description: A memo or note for this credit card credit.
          example: Refund for returned office supplies
        salesTaxCode:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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. If QuickBooks is not
            set up to charge sales tax (via the "Do You Charge Sales Tax?"
            preference), it will assign the default non-taxable code to all
            sales.
          example:
            id: 80000001-1234567890
            fullName: Non
        externalId:
          type:
            - string
            - 'null'
          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
        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:
          type: string
          const: qbd_credit_card_refund
          description: The type of object. This value is always `"qbd_credit_card_refund"`.
          example: 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:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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-Receivable (A/R) account to which this credit card
            refund is assigned, used to track the amount owed. If not specified,
            QuickBooks Desktop will use its default A/R account.


            **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:
          type:
            - string
            - '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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - number
            - '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:
          type:
            - string
            - '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:
          oneOf:
            - $ref: '#/components/schemas/qbd_address'
            - type: 'null'
          description: The address that is printed on the credit card refund.
        paymentMethod:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 refund's payment method (e.g., cash, check, credit
            card).
          example:
            id: 80000001-1234567890
            fullName: Credit Card
        memo:
          type:
            - string
            - 'null'
          description: A memo or note for this credit card refund.
          example: Refund to customer for duplicate credit card charge
        creditCardTransaction:
          oneOf:
            - $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:
          type:
            - string
            - 'null'
          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
        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:
          oneOf:
            - $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:
          oneOf:
            - $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:
          type:
            - string
            - 'null'
          description: The cardholder's name on the card.
          example: John Doe
        address:
          type:
            - string
            - 'null'
          description: The card's billing address.
          example: 1234 Main St, Anytown, USA, 12345
        postalCode:
          type:
            - string
            - 'null'
          description: The card's billing address ZIP or postal code.
          example: '12345'
        commercialCardCode:
          type:
            - string
            - '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:
          type:
            - string
            - 'null'
          enum:
            - card_not_present
            - card_present
            - 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:
          type:
            - string
            - 'null'
          enum:
            - authorization
            - capture
            - charge
            - refund
            - voice_authorization
            - 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:
          type:
            - string
            - '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:
          type:
            - string
            - 'null'
          enum:
            - fail
            - not_available
            - pass
            - 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:
          type:
            - string
            - 'null'
          enum:
            - fail
            - not_available
            - pass
            - 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:
          type:
            - string
            - 'null'
          enum:
            - fail
            - not_available
            - pass
            - 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:
          type:
            - string
            - 'null'
          description: >-
            An internal ID returned by QuickBooks Merchant Services (QBMS) from
            the transaction request, needed for the QuickBooks reconciliation
            feature.
          example: '1234567890'
        paymentGroupingCode:
          type:
            - number
            - '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:
          type:
            - number
            - 'null'
          description: >-
            An internal value for this credit card transaction, needed for the
            QuickBooks reconciliation feature.
          example: 2
        clientTransactionId:
          type:
            - string
            - '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
          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
          description: The type of transaction for this credit transaction.
          example: invoice
        transactionDate:
          type:
            - string
            - 'null'
          format: date
          description: >-
            The date of this credit transaction, in ISO 8601 format
            (YYYY-MM-DD).
          example: '2024-10-01'
        refNumber:
          type:
            - string
            - '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:
          type:
            - string
            - '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:
          type:
            - string
            - '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:
          type:
            - string
            - '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:
          type: string
          const: qbd_credit_memo
          description: The type of object. This value is always `"qbd_credit_memo"`.
          example: 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:
          type: object
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 memo.
          example:
            id: 80000001-1234567890
            fullName: Acme Corporation
        class:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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'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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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-Receivable (A/R) account to which this credit memo is
            assigned, used to track the amount owed. If not specified,
            QuickBooks Desktop will use its default A/R account.


            **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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - string
            - '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:
          oneOf:
            - $ref: '#/components/schemas/qbd_address'
            - type: 'null'
          description: The credit memo's billing address.
        shippingAddress:
          oneOf:
            - $ref: '#/components/schemas/qbd_address'
            - type: 'null'
          description: The credit memo's shipping address.
        isPending:
          type:
            - boolean
            - 'null'
          description: Indicates whether this credit memo has not been completed.
          example: false
        purchaseOrderNumber:
          type:
            - string
            - '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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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's payment terms, defining when payment is due and
            any applicable discounts.
          example:
            id: 80000001-1234567890
            fullName: Net 30
        dueDate:
          type:
            - string
            - 'null'
          format: date
          description: >-
            The date by which this credit memo must be paid, in ISO 8601 format
            (YYYY-MM-DD).
          example: '2024-10-31'
        salesRepresentative:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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's sales representative. Sales representatives can be
            employees, vendors, or other names in QuickBooks.
          example:
            id: 80000001-1234567890
            fullName: Jane Doe
        shipmentOrigin:
          type:
            - string
            - '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:
          type:
            - string
            - 'null'
          format: date
          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'
        shippingMethod:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - string
            - 'null'
          description: >-
            The sales tax percentage applied to this credit memo, represented as
            a decimal string.
          example: '0.07'
        salesTaxTotal:
          type:
            - string
            - '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:
          type:
            - string
            - '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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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'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:
          type:
            - number
            - '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:
          type:
            - string
            - '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:
          type:
            - string
            - '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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 message to display to the customer on the credit memo.
          example:
            id: 80000001-1234567890
            fullName: Thank you for your business!
        isQueuedForPrint:
          type:
            - boolean
            - 'null'
          description: >-
            Indicates whether this credit memo is included in the queue of
            documents for QuickBooks to print.
          example: true
        isQueuedForEmail:
          type:
            - boolean
            - 'null'
          description: >-
            Indicates whether this credit memo is included in the queue of
            documents for QuickBooks to email to the customer.
          example: true
        salesTaxCode:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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. If QuickBooks is not
            set up to charge sales tax (via the "Do You Charge Sales Tax?"
            preference), it will assign the default non-taxable code to all
            sales.
          example:
            id: 80000001-1234567890
            fullName: Non
        otherCustomField:
          type:
            - string
            - '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:
          type:
            - string
            - 'null'
          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
        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:
          type: string
          const: qbd_credit_memo_line
          description: The type of object. This value is always `"qbd_credit_memo_line"`.
          example: qbd_credit_memo_line
        item:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - string
            - 'null'
          description: A description of this credit memo line.
          example: Return of defective product - Widget Model X123
        quantity:
          type:
            - number
            - '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:
          type:
            - string
            - '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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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: >-
            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:
          type:
            - string
            - '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:
          type:
            - string
            - 'null'
          description: >-
            The price of this credit memo line expressed as a percentage.
            Typically used for discount or markup items.
          example: '10.5'
        class:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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'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:
          type:
            - string
            - '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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 site location where inventory for the item associated with this
            credit memo line is stored.
          example:
            id: 80000001-1234567890
            fullName: Main Warehouse
        inventorySiteLocation:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - string
            - '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:
          type:
            - string
            - '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:
          type:
            - string
            - 'null'
          format: date
          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-31'
        serviceDate:
          type:
            - string
            - 'null'
          format: date
          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'
        salesTaxCode:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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. If QuickBooks is not
            set up to charge sales tax (via the "Do You Charge Sales Tax?"
            preference), it will assign the default non-taxable code to all
            sales.
          example:
            id: 80000001-1234567890
            fullName: Non
        otherCustomField1:
          type:
            - string
            - '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:
          type:
            - string
            - '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:
          type: string
          const: qbd_credit_memo_line_group
          description: >-
            The type of object. This value is always
            `"qbd_credit_memo_line_group"`.
          example: qbd_credit_memo_line_group
        itemGroup:
          type: object
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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:
          type:
            - string
            - 'null'
          description: A description of this credit memo line group.
          example: Service Bundle 1
        quantity:
          type:
            - number
            - '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:
          type:
            - string
            - '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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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: >-
            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'
        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
        - 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:
          type: string
          const: qbd_currency
          description: The type of object. This value is always `"qbd_currency"`.
          example: 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:
          oneOf:
            - $ref: '#/components/schemas/qbd_currency_format'
            - type: 'null'
          description: >-
            Controls how this currency displays thousands separators, grouping,
            and decimal places.
        isUserDefinedCurrency:
          type:
            - boolean
            - 'null'
          description: >-
            Indicates whether this currency was created by a QuickBooks user
            (`true`) or is a built-in currency (`false`).
          example: false
        exchangeRate:
          type:
            - number
            - '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:
          type:
            - string
            - 'null'
          format: date
          description: >-
            The date when the exchange rate for this currency was last updated,
            in ISO 8601 format (YYYY-MM-DD).
          example: '2024-08-01'
      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:
          type:
            - string
            - 'null'
          enum:
            - apostrophe
            - comma
            - period
            - space
            - null
          description: >-
            Controls the thousands separator when displaying currency values
            (for example, "1,000,000"). Defaults to comma.
          example: comma
        thousandSeparatorGrouping:
          type:
            - string
            - 'null'
          enum:
            - x_xx_xx_xxx
            - xx_xxx_xxx
            - null
          description: >-
            Controls how digits are grouped for thousands when displaying
            currency values (for example, "10,000,000").
          example: xx_xxx_xxx
        decimalPlaces:
          type:
            - string
            - 'null'
          enum:
            - '0'
            - '2'
            - 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:
          type:
            - string
            - 'null'
          enum:
            - comma
            - period
            - 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:
          type: string
          const: qbd_customer_type
          description: The type of object. This value is always `"qbd_customer_type"`.
          example: 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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type: string
          const: qbd_customer
          description: The type of object. This value is always `"qbd_customer"`.
          example: 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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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'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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - string
            - '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:
          type:
            - string
            - '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:
          type:
            - string
            - 'null'
          description: The first name of the contact person for this customer.
          example: John
        middleName:
          type:
            - string
            - 'null'
          description: The middle name of the contact person for this customer.
          example: A.
        lastName:
          type:
            - string
            - 'null'
          description: The last name of the contact person for this customer.
          example: Doe
        jobTitle:
          type:
            - string
            - 'null'
          description: The job title of the contact person for this customer.
          example: Purchasing Manager
        billingAddress:
          oneOf:
            - $ref: '#/components/schemas/qbd_address'
            - type: 'null'
          description: The customer's billing address.
        shippingAddress:
          oneOf:
            - $ref: '#/components/schemas/qbd_address'
            - type: 'null'
          description: The customer's shipping address.
        alternateShippingAddresses:
          type: array
          items:
            $ref: '#/components/schemas/qbd_shipping_address'
          description: >-
            A list of additional shipping addresses for this customer. Useful
            when the customer has multiple shipping locations.
        phone:
          type:
            - string
            - 'null'
          description: The customer's primary telephone number.
          example: +1-555-123-4567
        alternatePhone:
          type:
            - string
            - 'null'
          description: The customer's alternate telephone number.
          example: +1-555-987-6543
        fax:
          type:
            - string
            - 'null'
          description: The customer's fax number.
          example: +1-555-555-1212
        email:
          type:
            - string
            - 'null'
          description: The customer's email address.
          example: customer@example.com
        ccEmail:
          type:
            - string
            - 'null'
          description: >-
            An email address to carbon copy (CC) on communications with this
            customer.
          example: manager@example.com
        contact:
          type:
            - string
            - 'null'
          description: The name of the primary contact person for this customer.
          example: Jane Smith
        alternateContact:
          type:
            - string
            - '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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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's type, used for categorizing customers into meaningful
            segments, such as industry or region.
          example:
            id: 80000001-1234567890
            fullName: Retail Customer
        terms:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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's payment terms, defining when payment is due and any
            applicable discounts.
          example:
            id: 80000001-1234567890
            fullName: Net 30
        salesRepresentative:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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's sales representative. Sales representatives can be
            employees, vendors, or other names in QuickBooks.
          example:
            id: 80000001-1234567890
            fullName: Jane Doe
        balance:
          type:
            - string
            - '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:
          type:
            - string
            - '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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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. If QuickBooks is not
            set up to charge sales tax (via the "Do You Charge Sales Tax?"
            preference), it will assign the default non-taxable code to all
            sales.
          example:
            id: 80000001-1234567890
            fullName: Non
        salesTaxItem:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - string
            - 'null'
          enum:
            - australia
            - canada
            - uk
            - us
            - null
          description: The country for which sales tax is collected for this customer.
          example: us
        resaleNumber:
          type:
            - string
            - '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:
          type:
            - string
            - '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:
          type:
            - string
            - '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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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's preferred payment method (e.g., cash, check, credit
            card).
          example:
            id: 80000001-1234567890
            fullName: Credit Card
        creditCard:
          oneOf:
            - $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:
          type:
            - string
            - 'null'
          enum:
            - awarded
            - closed
            - in_progress
            - none
            - not_awarded
            - pending
            - null
          description: >-
            The status of this customer's job, if this object is a job (i.e.,
            sub-customer).
          example: in_progress
        jobStartDate:
          type:
            - string
            - 'null'
          format: date
          description: >-
            The date when work on this customer's job began, if applicable, in
            ISO 8601 format (YYYY-MM-DD).
          example: '2024-01-15'
        jobProjectedEndDate:
          type:
            - string
            - 'null'
          format: date
          description: >-
            The projected completion date for this customer's job, if
            applicable, in ISO 8601 format (YYYY-MM-DD).
          example: '2024-12-31'
        jobEndDate:
          type:
            - string
            - 'null'
          format: date
          description: >-
            The actual completion date of this customer's job, if applicable, in
            ISO 8601 format (YYYY-MM-DD).
          example: '2024-11-30'
        jobDescription:
          type:
            - string
            - '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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - string
            - '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:
          type:
            - string
            - 'null'
          enum:
            - email
            - mail
            - none
            - null
          description: >-
            The preferred method for delivering invoices and other documents to
            this customer.
          example: email
        priceLevel:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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'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:
          type:
            - string
            - 'null'
          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
        taxRegistrationNumber:
          type:
            - string
            - 'null'
          description: The customer's tax registration number, for use in Canada or the UK.
          example: GB123456789
        currency:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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'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:
          type: string
          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:
          type:
            - string
            - 'null'
          description: >-
            The first line of the shipping address (e.g., street, PO Box, or
            company name).
          example: Conductor Labs Inc.
        line2:
          type:
            - string
            - 'null'
          description: >-
            The second line of the shipping address, if needed (e.g., apartment,
            suite, unit, or building).
          example: 540 Market St.
        line3:
          type:
            - string
            - 'null'
          description: The third line of the shipping address, if needed.
          example: Suite 100
        line4:
          type:
            - string
            - 'null'
          description: The fourth line of the shipping address, if needed.
          example: ''
        line5:
          type:
            - string
            - 'null'
          description: The fifth line of the shipping address, if needed.
          example: ''
        city:
          type:
            - string
            - 'null'
          description: >-
            The city, district, suburb, town, or village name of the shipping
            address.
          example: San Francisco
        state:
          type:
            - string
            - 'null'
          description: The state, county, province, or region name of the shipping address.
          example: CA
        postalCode:
          type:
            - string
            - 'null'
          description: The postal code or ZIP code of the shipping address.
          example: '94110'
        country:
          type:
            - string
            - 'null'
          description: The country name of the shipping address.
          example: United States
        note:
          type:
            - string
            - '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:
          type:
            - boolean
            - '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:
          type:
            - string
            - '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:
          type: string
          const: qbd_contact
          description: The type of object. This value is always `"qbd_contact"`.
          example: 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:
          type:
            - string
            - 'null'
          description: The contact's full name.
          example: Jane Smith
        salutation:
          type:
            - string
            - '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:
          type:
            - string
            - 'null'
          description: The contact's middle name.
          example: A.
        lastName:
          type:
            - string
            - 'null'
          description: The contact's last name.
          example: Doe
        jobTitle:
          type:
            - string
            - '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:
          type:
            - string
            - 'null'
          description: >-
            The credit card number. Must be masked with lower case "x" and no
            dashes.
          example: xxxxxxxxxxxx1234
        expirationMonth:
          type:
            - number
            - 'null'
          description: The month when the credit card expires.
          example: 12
        expirationYear:
          type:
            - number
            - 'null'
          description: The year when the credit card expires.
          example: 2024
        name:
          type:
            - string
            - 'null'
          description: The cardholder's name on the card.
          example: John Doe
        address:
          type:
            - string
            - 'null'
          description: The card's billing address.
          example: 1234 Main St, Anytown, USA, 12345
        postalCode:
          type:
            - string
            - '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:
          type:
            - string
            - 'null'
          format: date
          description: >-
            The date this note was last updated, in ISO 8601 format
            (YYYY-MM-DD).
          example: '2024-01-01'
        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:
          type: string
          const: qbd_date_driven_term
          description: The type of object. This value is always `"qbd_date_driven_term"`.
          example: 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:
          type:
            - number
            - '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:
          type:
            - number
            - 'null'
          description: >-
            The day of the month within which payment must be received to
            qualify for the discount specified by `discountPercentage`.
          example: 5
        discountPercentage:
          type:
            - string
            - '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:
          type: string
          const: qbd_deleted_list_object
          description: >-
            The type of object. This value is always
            `"qbd_deleted_list_object"`.
          example: 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:
          type:
            - string
            - '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:
          type: string
          const: qbd_deleted_transaction
          description: >-
            The type of object. This value is always
            `"qbd_deleted_transaction"`.
          example: 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:
          type:
            - string
            - '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_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:
          type: string
          const: qbd_discount_item
          description: The type of object. This value is always `"qbd_discount_item"`.
          example: 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:
          type:
            - string
            - '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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - string
            - '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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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. If QuickBooks is not
            set up to charge sales tax (via the "Do You Charge Sales Tax?"
            preference), it will assign the default non-taxable code to all
            sales.
          example:
            id: 80000001-1234567890
            fullName: Non
        discountRate:
          type:
            - string
            - 'null'
          description: >-
            The monetary amount to subtract from the total or subtotal when
            applying this discount item to a transaction.


            **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:
          type:
            - string
            - '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:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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:
          type:
            - string
            - 'null'
          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
        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:
          type: string
          const: qbd_employee
          description: The type of object. This value is always `"qbd_employee"`.
          example: 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:
          type:
            - string
            - 'null'
          description: >-
            The employee's formal salutation title that precedes their name,
            such as "Mr.", "Ms.", or "Dr.".
          example: Dr.
        firstName:
          type:
            - string
            - 'null'
          description: The employee's first name.
          example: John
        middleName:
          type:
            - string
            - 'null'
          description: The employee's middle name.
          example: A.
        lastName:
          type:
            - string
            - 'null'
          description: The employee's last name.
          example: Doe
        jobTitle:
          type:
            - string
            - 'null'
          description: The employee's job title.
          example: Purchasing Manager
        supervisor:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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's supervisor. Found in the "employment job details"
            section of the employee's record in QuickBooks.
          example:
            id: 80000001-1234567890
            fullName: John Doe
        department:
          type:
            - string
            - 'null'
          description: >-
            The employee's department. Found in the "employment job details"
            section of the employee's record in QuickBooks.
          example: Sales
        description:
          type:
            - string
            - '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:
          type:
            - string
            - '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:
          oneOf:
            - $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:
          type:
            - string
            - '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:
          type:
            - string
            - 'null'
          description: The employee's primary telephone number.
          example: +1-555-123-4567
        mobile:
          type:
            - string
            - 'null'
          description: The employee's mobile phone number.
          example: +1-555-555-1212
        pager:
          type:
            - string
            - 'null'
          description: The employee's pager number.
          example: +1-555-555-1212
        pagerPin:
          type:
            - string
            - 'null'
          description: The employee's pager PIN.
          example: '1234'
        alternatePhone:
          type:
            - string
            - 'null'
          description: The employee's alternate telephone number.
          example: +1-555-987-6543
        fax:
          type:
            - string
            - 'null'
          description: The employee's fax number.
          example: +1-555-555-1212
        ssn:
          type:
            - string
            - '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:
          type:
            - string
            - '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:
          oneOf:
            - $ref: '#/components/schemas/qbd_emergency_contact_set'
            - type: 'null'
          description: The employee's emergency contacts.
        employeeType:
          type:
            - string
            - 'null'
          enum:
            - officer
            - owner
            - regular
            - statutory
            - 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:
          type:
            - string
            - 'null'
          enum:
            - full_time
            - part_time
            - null
          description: >-
            Indicates whether this employee is a part-time or full-time
            employee.
          example: full_time
        overtimeExemptStatus:
          type:
            - string
            - 'null'
          enum:
            - exempt
            - non_exempt
            - null
          description: >
            Indicates whether this employee is exempt from overtime pay. This
            classification is based on U.S. labor laws (FLSA).
          example: exempt
        keyEmployeeStatus:
          type:
            - string
            - 'null'
          enum:
            - key_employee
            - non_key_employee
            - null
          description: Indicates whether this employee is a key employee.
          example: key_employee
        gender:
          type:
            - string
            - 'null'
          enum:
            - male
            - female
            - null
          description: This employee's gender.
          example: male
        hiredDate:
          type:
            - string
            - 'null'
          format: date
          description: The date this employee was hired, in ISO 8601 format (YYYY-MM-DD).
          example: '2024-01-01'
        originalHireDate:
          type:
            - string
            - 'null'
          format: date
          description: >-
            The original hire date for this employee, in ISO 8601 format
            (YYYY-MM-DD).
          example: '2024-01-01'
        adjustedServiceDate:
          type:
            - string
            - 'null'
          format: date
          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'
        terminationDate:
          type:
            - string
            - 'null'
          format: date
          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'
        birthDate:
          type:
            - string
            - 'null'
          format: date
          description: This employee's date of birth, in ISO 8601 format (YYYY-MM-DD).
          example: '1990-01-01'
        usCitizenshipStatus:
          type:
            - string
            - 'null'
          enum:
            - citizen
            - non_citizen
            - null
          description: Indicates whether this employee is a U.S. citizen.
          example: citizen
        ethnicity:
          type:
            - string
            - 'null'
          enum:
            - american_indian
            - asian
            - black
            - hawaiian
            - hispanic
            - white
            - two_or_more_races
            - null
          description: This employee's ethnicity.
          example: asian
        disabilityStatus:
          type:
            - string
            - 'null'
          enum:
            - disabled
            - non_disabled
            - null
          description: Indicates whether this employee is disabled.
          example: disabled
        disabilityDescription:
          type:
            - string
            - 'null'
          description: A description of this employee's disability.
          example: Cerebral Palsy
        i9OnFileStatus:
          type:
            - string
            - 'null'
          enum:
            - on_file
            - not_on_file
            - null
          description: Indicates whether this employee's I-9 is on file.
          example: on_file
        workAuthorizationExpirationDate:
          type:
            - string
            - 'null'
          format: date
          description: >-
            The date this employee's work authorization expires, in ISO 8601
            format (YYYY-MM-DD).
          example: '2024-01-01'
        usVeteranStatus:
          type:
            - string
            - 'null'
          enum:
            - veteran
            - non_veteran
            - null
          description: Indicates whether this employee is a U.S. veteran.
          example: veteran
        militaryStatus:
          type:
            - string
            - 'null'
          enum:
            - active
            - reserve
            - null
          description: This employee's military status if they are a U.S. veteran.
          example: active
        accountNumber:
          type:
            - string
            - '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:
          type:
            - string
            - '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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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's billing rate, used to override service item rates in
            time tracking activities.
          example:
            id: 80000001-1234567890
            fullName: Standard Rate
        employeePayroll:
          oneOf:
            - $ref: '#/components/schemas/qbd_employee_payroll_info'
            - type: 'null'
          description: The employee's payroll information.
        externalId:
          type:
            - string
            - 'null'
          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
        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:
          type:
            - string
            - 'null'
          description: >-
            The first line of the employee address (e.g., street, PO Box, or
            company name).
          example: Conductor Labs Inc.
        line2:
          type:
            - string
            - 'null'
          description: >-
            The second line of the employee address, if needed (e.g., apartment,
            suite, unit, or building).
          example: 540 Market St.
        line3:
          type:
            - string
            - 'null'
          description: The third line of the employee address, if needed.
          example: Suite 100
        line4:
          type:
            - string
            - 'null'
          description: The fourth line of the employee address, if needed.
          example: ''
        city:
          type:
            - string
            - 'null'
          description: >-
            The city, district, suburb, town, or village name of the employee
            address.
          example: San Francisco
        state:
          type:
            - string
            - 'null'
          description: >-
            The U.S. state of the employee address. QuickBooks requires this
            field to be a U.S. state abbreviation (e.g., "CA" for California).
            See enum for all possible values.


            **NOTE:** This `state` field stays enum-constrained when creating or
            updating an employee because QuickBooks Desktop rejects non-standard
            values on input. In responses, though, we've seen QuickBooks return
            values outside its own enum (like 'ON'), so Conductor surfaces the
            raw QuickBooks string unchanged instead of enforcing the enum.
          example: CA
        postalCode:
          type:
            - string
            - 'null'
          description: The postal code or ZIP code of the employee address.
          example: '94110'
        country:
          type:
            - string
            - '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:
          oneOf:
            - $ref: '#/components/schemas/qbd_emergency_contact'
            - type: 'null'
          description: The employee's primary emergency contact.
        secondaryContact:
          oneOf:
            - $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:
          type:
            - string
            - 'null'
          description: The value of the contact field.
          example: 555-123-4567
        relation:
          type:
            - string
            - 'null'
          enum:
            - brother
            - daughter
            - father
            - friend
            - mother
            - other
            - partner
            - sister
            - son
            - spouse
            - 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:
          type:
            - string
            - 'null'
          enum:
            - biweekly
            - daily
            - monthly
            - quarterly
            - semimonthly
            - weekly
            - yearly
            - null
          description: >-
            How frequently this employee is paid (e.g., weekly, biweekly,
            monthly). This determines the schedule for generating paychecks.
          example: weekly
        class:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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'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:
          type:
            - string
            - 'null'
          enum:
            - does_not_use_time_data
            - not_set
            - uses_time_data
            - null
          description: >-
            Indicates whether this employee is using time-tracking data to
            create paychecks.
          example: uses_time_data
        sickHours:
          oneOf:
            - $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:
          oneOf:
            - $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:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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:
          type:
            - string
            - 'null'
          description: The hourly rate for this employee, represented as a decimal string.
          example: '10.00'
        ratePercent:
          type:
            - string
            - '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:
          type:
            - string
            - '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:
          type:
            - string
            - 'null'
          enum:
            - accrues_annually
            - accrues_hourly
            - accrues_per_paycheck
            - null
          description: How frequently the employee's sick hours are accrued.
          example: accrues_per_paycheck
        hoursAccruedPerPeriod:
          type:
            - string
            - '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:
          type:
            - string
            - '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:
          type:
            - boolean
            - 'null'
          description: >-
            Indicates whether the employee's sick hours reset to zero at the
            beginning of the new year.
          example: false
        hoursUsed:
          type:
            - string
            - '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:
          type:
            - string
            - 'null'
          format: date
          description: >-
            The date the employee's sick hours began to accrue, in ISO 8601
            format (YYYY-MM-DD).
          example: '2024-01-01'
      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:
          type:
            - string
            - '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:
          type:
            - string
            - 'null'
          enum:
            - accrues_annually
            - accrues_hourly
            - accrues_per_paycheck
            - null
          description: How frequently the employee's vacation hours are accrued.
          example: accrues_per_paycheck
        hoursAccruedPerPeriod:
          type:
            - string
            - '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:
          type:
            - string
            - '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:
          type:
            - boolean
            - 'null'
          description: >-
            Indicates whether the employee's vacation hours reset to zero at the
            beginning of the new year.
          example: false
        hoursUsed:
          type:
            - string
            - '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:
          type:
            - string
            - 'null'
          format: date
          description: >-
            The date the employee's vacation hours began to accrue, in ISO 8601
            format (YYYY-MM-DD).
          example: '2024-01-01'
      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:
          type: string
          const: qbd_estimate
          description: The type of object. This value is always `"qbd_estimate"`.
          example: 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:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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'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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - string
            - '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:
          oneOf:
            - $ref: '#/components/schemas/qbd_address'
            - type: 'null'
          description: The estimate's billing address.
        shippingAddress:
          oneOf:
            - $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:
          type:
            - string
            - '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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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's payment terms, defining when payment is due and any
            applicable discounts.
          example:
            id: 80000001-1234567890
            fullName: Net 30
        dueDate:
          type:
            - string
            - 'null'
          format: date
          description: >-
            The date by which this estimate must be paid, in ISO 8601 format
            (YYYY-MM-DD).
          example: '2024-10-31'
        salesRepresentative:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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's sales representative. Sales representatives can be
            employees, vendors, or other names in QuickBooks.
          example:
            id: 80000001-1234567890
            fullName: Jane Doe
        shipmentOrigin:
          type:
            - string
            - '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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - string
            - 'null'
          description: >-
            The sales tax percentage applied to this estimate, represented as a
            decimal string.
          example: '0.07'
        salesTaxTotal:
          type:
            - string
            - '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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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'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:
          type:
            - number
            - '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:
          type:
            - string
            - '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:
          type:
            - string
            - '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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 message to display to the customer on the estimate.
          example:
            id: 80000001-1234567890
            fullName: Thank you for your business!
        isQueuedForEmail:
          type:
            - boolean
            - 'null'
          description: >-
            Indicates whether this estimate is included in the queue of
            documents for QuickBooks to email to the customer.
          example: true
        salesTaxCode:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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. If QuickBooks is not
            set up to charge sales tax (via the "Do You Charge Sales Tax?"
            preference), it will assign the default non-taxable code to all
            sales.
          example:
            id: 80000001-1234567890
            fullName: Non
        otherCustomField:
          type:
            - string
            - '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:
          type:
            - string
            - 'null'
          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
        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:
          type: string
          const: qbd_estimate_line
          description: The type of object. This value is always `"qbd_estimate_line"`.
          example: qbd_estimate_line
        item:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - string
            - 'null'
          description: A description of this estimate line.
          example: Graphic illustrations for website redesign
        quantity:
          type:
            - number
            - '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:
          type:
            - string
            - '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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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: >-
            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:
          type:
            - string
            - '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:
          type:
            - string
            - 'null'
          description: >-
            The price of this estimate line expressed as a percentage. Typically
            used for discount or markup items.
          example: '10.5'
        class:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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'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:
          type:
            - string
            - '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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 site location where inventory for the item associated with this
            estimate line is stored.
          example:
            id: 80000001-1234567890
            fullName: Main Warehouse
        inventorySiteLocation:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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. If QuickBooks is not
            set up to charge sales tax (via the "Do You Charge Sales Tax?"
            preference), it will assign the default non-taxable code to all
            sales.
          example:
            id: 80000001-1234567890
            fullName: Non
        markupRate:
          type:
            - string
            - '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:
          type:
            - string
            - '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:
          type:
            - string
            - '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:
          type:
            - string
            - '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:
          type: string
          const: qbd_estimate_line_group
          description: >-
            The type of object. This value is always
            `"qbd_estimate_line_group"`.
          example: qbd_estimate_line_group
        itemGroup:
          type: object
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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:
          type:
            - string
            - 'null'
          description: A description of this estimate line group.
          example: Standard widget bulk package
        quantity:
          type:
            - number
            - '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:
          type:
            - string
            - '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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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: >-
            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:
          type: string
          const: qbd_inventory_adjustment
          description: >-
            The type of object. This value is always
            `"qbd_inventory_adjustment"`.
          example: 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:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - string
            - '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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 inventory
            adjustment.
          example:
            id: 80000001-1234567890
            fullName: Acme Corporation
        class:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - string
            - 'null'
          description: A memo or note for this inventory adjustment.
          example: Adjusted quantity due to physical count discrepancy
        externalId:
          type:
            - string
            - 'null'
          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
        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:
          type: string
          const: qbd_inventory_adjustment_line
          description: >-
            The type of object. This value is always
            `"qbd_inventory_adjustment_line"`.
          example: qbd_inventory_adjustment_line
        item:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 item associated with this inventory adjustment line.
          example:
            id: 80000001-1234567890
            fullName: Widget A
        serialNumber:
          type:
            - string
            - '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:
          type:
            - string
            - 'null'
          enum:
            - added
            - removed
            - null
          description: >-
            Indicates whether this inventory adjustment line's serial number was
            added or removed from the inventory.
          example: added
        lotNumber:
          type:
            - string
            - '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:
          type:
            - string
            - 'null'
          format: date
          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'
        inventorySiteLocation:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - number
            - '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:
          type:
            - number
            - '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:
          type: string
          const: qbd_inventory_assembly_item
          description: >-
            The type of object. This value is always
            `"qbd_inventory_assembly_item"`.
          example: 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:
          type:
            - string
            - '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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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'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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - string
            - 'null'
          description: >-
            The inventory assembly item's stock keeping unit (SKU), which is
            sometimes the manufacturer's part number.
          example: MPN-123456
        unitOfMeasureSet:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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. If QuickBooks is not
            set up to charge sales tax (via the "Do You Charge Sales Tax?"
            preference), it will assign the default non-taxable code to all
            sales.
          example:
            id: 80000001-1234567890
            fullName: Non
        salesDescription:
          type:
            - string
            - '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:
          type:
            - string
            - 'null'
          description: >-
            The price at which this inventory assembly item is sold to
            customers, represented as a decimal string.
          example: '19.99'
        incomeAccount:
          type: object
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 income account used to track revenue from sales of this
            inventory assembly item.
          example:
            id: 80000001-1234567890
            fullName: Income:Product Sales
        purchaseDescription:
          type:
            - string
            - '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:
          type:
            - string
            - 'null'
          description: >-
            The cost at which this inventory assembly item is purchased from
            vendors, represented as a decimal string.
          example: '15.75'
        purchaseTaxCode:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 preferred vendor from whom this inventory assembly item is
            typically purchased.
          example:
            id: 80000001-1234567890
            fullName: Acme Supplies Ltd.
        assetAccount:
          type: object
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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:
          type:
            - number
            - '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:
          type:
            - number
            - 'null'
          description: >-
            The maximum quantity of this inventory assembly item desired in
            inventory.
          example: 200
        quantityOnHand:
          type:
            - number
            - '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:
          type:
            - string
            - 'null'
          description: >-
            The average cost per unit of this inventory assembly item,
            represented as a decimal string.
          example: '16.50'
        quantityOnPurchaseOrder:
          type:
            - number
            - '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:
          type:
            - number
            - '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:
          type:
            - string
            - 'null'
          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
        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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 item associated with this inventory assembly item
            line.
          example:
            id: 80000001-1234567890
            fullName: Inventory Item
        quantity:
          type:
            - number
            - '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:
          type: string
          const: qbd_inventory_item
          description: The type of object. This value is always `"qbd_inventory_item"`.
          example: 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:
          type:
            - string
            - '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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - string
            - 'null'
          description: >-
            The inventory item's stock keeping unit (SKU), which is sometimes
            the manufacturer's part number.
          example: MPN-123456
        unitOfMeasureSet:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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. If QuickBooks is not
            set up to charge sales tax (via the "Do You Charge Sales Tax?"
            preference), it will assign the default non-taxable code to all
            sales.
          example:
            id: 80000001-1234567890
            fullName: Non
        salesDescription:
          type:
            - string
            - '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:
          type:
            - string
            - 'null'
          description: >-
            The price at which this inventory item is sold to customers,
            represented as a decimal string.
          example: '19.99'
        incomeAccount:
          type: object
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 income account used to track revenue from sales of this
            inventory item.
          example:
            id: 80000001-1234567890
            fullName: Income:Product Sales
        purchaseDescription:
          type:
            - string
            - '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:
          type:
            - string
            - 'null'
          description: >-
            The cost at which this inventory item is purchased from vendors,
            represented as a decimal string.
          example: '15.75'
        purchaseTaxCode:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 preferred vendor from whom this inventory item is typically
            purchased.
          example:
            id: 80000001-1234567890
            fullName: Acme Supplies Ltd.
        assetAccount:
          type: object
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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:
          type:
            - number
            - 'null'
          description: >-
            The minimum quantity of this inventory item at which QuickBooks
            prompts for reordering.
          example: 50
        maximumQuantityOnHand:
          type:
            - number
            - 'null'
          description: The maximum quantity of this inventory item desired in inventory.
          example: 200
        quantityOnHand:
          type:
            - number
            - '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:
          type:
            - string
            - 'null'
          description: >-
            The average cost per unit of this inventory item, represented as a
            decimal string.
          example: '16.50'
        quantityOnPurchaseOrder:
          type:
            - number
            - '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:
          type:
            - number
            - '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:
          type:
            - string
            - 'null'
          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
        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:
          type: string
          const: qbd_inventory_site
          description: The type of object. This value is always `"qbd_inventory_site"`.
          example: 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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 parent inventory site one level above this one in the hierarchy.
          example:
            id: 80000001-1234567890
            fullName: Romulus Warehouse:Stockroom
        isDefault:
          type:
            - boolean
            - '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:
          type:
            - string
            - 'null'
          description: A description of this inventory site.
          example: Main Stockroom for Electronics
        contact:
          type:
            - string
            - 'null'
          description: The name of the primary contact person for this inventory site.
          example: Jane Smith
        phone:
          type:
            - string
            - 'null'
          description: The inventory site's primary telephone number.
          example: +1-555-123-4567
        fax:
          type:
            - string
            - 'null'
          description: The inventory site's fax number.
          example: +1-555-555-1212
        email:
          type:
            - string
            - 'null'
          description: The inventory site's email address.
          example: inventory-site@example.com
        address:
          oneOf:
            - $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:
          type:
            - string
            - 'null'
          description: >-
            The first line of the site address (e.g., street, PO Box, or company
            name).
          example: Conductor Labs Inc.
        line2:
          type:
            - string
            - 'null'
          description: >-
            The second line of the site address, if needed (e.g., apartment,
            suite, unit, or building).
          example: 540 Market St.
        line3:
          type:
            - string
            - 'null'
          description: The third line of the site address, if needed.
          example: Suite 100
        line4:
          type:
            - string
            - 'null'
          description: The fourth line of the site address, if needed.
          example: ''
        line5:
          type:
            - string
            - 'null'
          description: The fifth line of the site address, if needed.
          example: ''
        city:
          type:
            - string
            - 'null'
          description: >-
            The city, district, suburb, town, or village name of the site
            address.
          example: San Francisco
        state:
          type:
            - string
            - 'null'
          description: The state, county, province, or region name of the site address.
          example: CA
        postalCode:
          type:
            - string
            - 'null'
          description: The postal code or ZIP code of the site address.
          example: '94110'
        country:
          type:
            - string
            - '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:
          type: string
          const: qbd_invoice
          description: The type of object. This value is always `"qbd_invoice"`.
          example: 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:
          type: object
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 invoice.
          example:
            id: 80000001-1234567890
            fullName: Acme Corporation
        class:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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'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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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-Receivable (A/R) account to which this invoice is
            assigned, used to track the amount owed. If not specified,
            QuickBooks Desktop will use its default A/R account.


            **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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - string
            - '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:
          oneOf:
            - $ref: '#/components/schemas/qbd_address'
            - type: 'null'
          description: The invoice's billing address.
        shippingAddress:
          oneOf:
            - $ref: '#/components/schemas/qbd_address'
            - type: 'null'
          description: The invoice's shipping address.
        isPending:
          type:
            - boolean
            - 'null'
          description: >-
            Indicates whether this invoice has not been completed or is in a
            draft version.
          example: false
        isFinanceCharge:
          type:
            - boolean
            - 'null'
          description: >-
            Whether this invoice includes a finance charge. This field is
            immutable and can only be set during invoice creation.
          example: true
        purchaseOrderNumber:
          type:
            - string
            - '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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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's payment terms, defining when payment is due and any
            applicable discounts.
          example:
            id: 80000001-1234567890
            fullName: Net 30
        dueDate:
          type:
            - string
            - 'null'
          format: date
          description: >-
            The date by which this invoice must be paid, in ISO 8601 format
            (YYYY-MM-DD).
          example: '2024-10-31'
        salesRepresentative:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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's sales representative. Sales representatives can be
            employees, vendors, or other names in QuickBooks.
          example:
            id: 80000001-1234567890
            fullName: Jane Doe
        shipmentOrigin:
          type:
            - string
            - '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:
          type:
            - string
            - 'null'
          format: date
          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'
        shippingMethod:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - string
            - 'null'
          description: >-
            The sales tax percentage applied to this invoice, represented as a
            decimal string.
          example: '0.07'
        salesTaxTotal:
          type:
            - string
            - 'null'
          description: >-
            The total amount of sales tax charged for this invoice, represented
            as a decimal string.
          example: '10.00'
        appliedAmount:
          type:
            - string
            - 'null'
          description: >-
            The amount of credit applied to this invoice. This could include
            customer deposits, payments, or credits. Represented as a decimal
            string.
          example: '100.00'
        balanceRemaining:
          type:
            - string
            - '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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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'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:
          type:
            - number
            - '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:
          type:
            - string
            - '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:
          type:
            - string
            - '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:
          type:
            - boolean
            - 'null'
          description: >-
            Indicates whether this invoice has been paid in full. When `true`,
            `openAmount` will be 0.
          example: false
        customerMessage:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 message to display to the customer on the invoice.
          example:
            id: 80000001-1234567890
            fullName: Thank you for your business!
        isQueuedForPrint:
          type:
            - boolean
            - 'null'
          description: >-
            Indicates whether this invoice is included in the queue of documents
            for QuickBooks to print.
          example: true
        isQueuedForEmail:
          type:
            - boolean
            - 'null'
          description: >-
            Indicates whether this invoice is included in the queue of documents
            for QuickBooks to email to the customer.
          example: true
        salesTaxCode:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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. If QuickBooks is not
            set up to charge sales tax (via the "Do You Charge Sales Tax?"
            preference), it will assign the default non-taxable code to all
            sales.
          example:
            id: 80000001-1234567890
            fullName: Non
        suggestedDiscountAmount:
          type:
            - string
            - 'null'
          description: >-
            The suggested discount amount for this invoice, represented as a
            decimal string.
          example: '10.00'
        suggestedDiscountDate:
          type:
            - string
            - 'null'
          format: date
          description: >-
            The date when the `suggestedDiscountAmount` for this invoice would
            apply, in ISO 8601 format (YYYY-MM-DD).
          example: '2024-01-01'
        otherCustomField:
          type:
            - string
            - '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:
          type:
            - string
            - 'null'
          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
        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:
          type: string
          const: qbd_invoice_line
          description: The type of object. This value is always `"qbd_invoice_line"`.
          example: qbd_invoice_line
        item:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - string
            - 'null'
          description: A description of this invoice line.
          example: High-quality widget with custom engraving
        quantity:
          type:
            - number
            - '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:
          type:
            - string
            - '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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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: >-
            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:
          type:
            - string
            - '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:
          type:
            - string
            - 'null'
          description: >-
            The price of this invoice line expressed as a percentage. Typically
            used for discount or markup items.
          example: '10.5'
        class:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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'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:
          type:
            - string
            - '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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 site location where inventory for the item associated with this
            invoice line is stored.
          example:
            id: 80000001-1234567890
            fullName: Main Warehouse
        inventorySiteLocation:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - string
            - '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:
          type:
            - string
            - '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:
          type:
            - string
            - 'null'
          format: date
          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-31'
        serviceDate:
          type:
            - string
            - 'null'
          format: date
          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'
        salesTaxCode:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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. If QuickBooks is not
            set up to charge sales tax (via the "Do You Charge Sales Tax?"
            preference), it will assign the default non-taxable code to all
            sales.
          example:
            id: 80000001-1234567890
            fullName: Non
        otherCustomField1:
          type:
            - string
            - '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:
          type:
            - string
            - '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:
          type: string
          const: qbd_invoice_line_group
          description: The type of object. This value is always `"qbd_invoice_line_group"`.
          example: qbd_invoice_line_group
        itemGroup:
          type: object
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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:
          type:
            - string
            - 'null'
          description: A description of this invoice line group.
          example: Standard widget bulk package
        quantity:
          type:
            - number
            - '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:
          type:
            - string
            - '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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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: >-
            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'
        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
        - 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:
          type: string
          const: qbd_item_group
          description: The type of object. This value is always `"qbd_item_group"`.
          example: 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:
          type:
            - string
            - '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:
          type:
            - string
            - '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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - string
            - 'null'
          enum:
            - finance_charge
            - reimbursable_expense_group
            - reimbursable_expense_subtotal
            - null
          description: The type of special item for this item group.
          example: finance_charge
        externalId:
          type:
            - string
            - 'null'
          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
        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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - number
            - '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:
          type:
            - string
            - '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:
          type: string
          const: qbd_item_receipt
          description: The type of object. This value is always `"qbd_item_receipt"`.
          example: 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:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 item receipt is
            assigned, used to track the amount owed. If not specified,
            QuickBooks Desktop will use its default A/P account.


            **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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - number
            - '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:
          type:
            - string
            - '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:
          type:
            - string
            - '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:
          type:
            - string
            - 'null'
          description: A memo or note for this item receipt.
          example: Received 100 units of Product X from Vendor Y
        salesTaxCode:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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. If QuickBooks is not
            set up to charge sales tax (via the "Do You Charge Sales Tax?"
            preference), it will assign the default non-taxable code to all
            sales.
          example:
            id: 80000001-1234567890
            fullName: Non
        externalId:
          type:
            - string
            - 'null'
          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
        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:
          type: string
          const: qbd_item_site
          description: The type of object. This value is always `"qbd_item_site"`.
          example: 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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 item associated with this item site.
          example:
            id: 80000001-1234567890
            fullName: Inventory Item
        inventorySite:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 site location where inventory for the item associated with this
            item site is stored.
          example:
            id: 80000001-1234567890
            fullName: Main Warehouse
        inventorySiteLocation:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - number
            - 'null'
          description: >-
            The inventory level at which QuickBooks prompts you to reorder this
            item site.
          example: 25
        quantityOnHand:
          type:
            - number
            - 'null'
          description: The number of units of this item site currently in inventory.
          example: 150
        quantityOnPurchaseOrders:
          type:
            - number
            - '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:
          type:
            - number
            - '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:
          type:
            - number
            - 'null'
          description: >-
            The number of units of this item site that are scheduled to be built
            on pending build transactions.
          example: 15
        quantityRequiredByPendingBuildTransactions:
          type:
            - number
            - 'null'
          description: >-
            The number of units of this item site required by pending build
            transactions.
          example: 12
        quantityOnPendingTransfers:
          type:
            - number
            - 'null'
          description: >-
            The number of units of this item site that are currently on pending
            inventory transfer transactions.
          example: 8
        assemblyBuildPoint:
          type:
            - number
            - '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:
          type: string
          const: qbd_journal_entry
          description: The type of object. This value is always `"qbd_journal_entry"`.
          example: 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:
          type:
            - string
            - '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:
          type:
            - boolean
            - '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:
          type:
            - boolean
            - '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:
          type:
            - boolean
            - '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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - number
            - '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:
          type:
            - string
            - 'null'
          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
        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:
          type: string
          const: qbd_journal_debit_line
          description: The type of object. This value is always `"qbd_journal_debit_line"`.
          example: qbd_journal_debit_line
        account:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 journal debit line is being debited. This
            will decrease the balance of this account.
          example:
            id: 80000001-1234567890
            fullName: Checking
        amount:
          type:
            - string
            - 'null'
          description: >-
            The monetary amount of this journal debit line, represented as a
            decimal string.
          example: '1000.00'
        memo:
          type:
            - string
            - 'null'
          description: A memo or note for this journal debit line.
          example: Monthly utility bill settlement
        entity:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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, 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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - string
            - 'null'
          enum:
            - billable
            - has_been_billed
            - not_billable
            - 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:
          type: string
          const: qbd_journal_credit_line
          description: >-
            The type of object. This value is always
            `"qbd_journal_credit_line"`.
          example: qbd_journal_credit_line
        account:
          type: object
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 journal credit line is being credited.
            This will increase the balance of this account.
          example:
            id: 80000001-1234567890
            fullName: Accounts-Payable
        amount:
          type:
            - string
            - 'null'
          description: >-
            The monetary amount of this journal credit line, represented as a
            decimal string.
          example: '1000.00'
        memo:
          type:
            - string
            - 'null'
          description: A memo or note for this journal credit line.
          example: Allocated funds for office lease payment
        entity:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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, 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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - string
            - 'null'
          enum:
            - billable
            - has_been_billed
            - not_billable
            - 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:
          type: string
          const: qbd_non_inventory_item
          description: The type of object. This value is always `"qbd_non_inventory_item"`.
          example: 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:
          type:
            - string
            - '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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - string
            - 'null'
          description: >-
            The non-inventory item's stock keeping unit (SKU), which is
            sometimes the manufacturer's part number.
          example: MPN-123456
        unitOfMeasureSet:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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. If QuickBooks is not
            set up to charge sales tax (via the "Do You Charge Sales Tax?"
            preference), it will assign the default non-taxable code to all
            sales.
          example:
            id: 80000001-1234567890
            fullName: Non
        salesOrPurchaseDetails:
          oneOf:
            - $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:
          oneOf:
            - $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:
          type:
            - string
            - 'null'
          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
        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:
          type:
            - string
            - 'null'
          description: A description of this item.
          example: Hourly Consulting Service
        price:
          type:
            - string
            - 'null'
          description: >-
            The price at which this item is purchased or sold, represented as a
            decimal string.
          example: '19.99'
        pricePercentage:
          type:
            - string
            - '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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - string
            - '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:
          type:
            - string
            - 'null'
          description: >-
            The price at which this item is sold to customers, represented as a
            decimal string.
          example: '19.99'
        incomeAccount:
          type: object
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 income account used to track revenue from sales of this item.
          example:
            id: 80000001-1234567890
            fullName: Income:Product Sales
        purchaseDescription:
          type:
            - string
            - '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:
          type:
            - string
            - 'null'
          description: >-
            The cost at which this item is purchased from vendors, represented
            as a decimal string.
          example: '15.75'
        purchaseTaxCode:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 account used to track costs from purchases of this item.
          example:
            id: 80000001-1234567890
            fullName: Expenses:Cost of Goods Sold
        preferredVendor:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type: string
          const: qbd_other_charge_item
          description: The type of object. This value is always `"qbd_other_charge_item"`.
          example: 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:
          type:
            - string
            - '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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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. If QuickBooks is not
            set up to charge sales tax (via the "Do You Charge Sales Tax?"
            preference), it will assign the default non-taxable code to all
            sales.
          example:
            id: 80000001-1234567890
            fullName: Non
        salesOrPurchaseDetails:
          oneOf:
            - $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:
          oneOf:
            - $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:
          type:
            - string
            - 'null'
          enum:
            - finance_charge
            - reimbursable_expense_group
            - reimbursable_expense_subtotal
            - null
          description: The type of special item for this other charge item.
          example: finance_charge
        externalId:
          type:
            - string
            - 'null'
          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
        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:
          type: string
          const: qbd_other_name
          description: The type of object. This value is always `"qbd_other_name"`.
          example: 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:
          type:
            - string
            - '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:
          type:
            - string
            - '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:
          type:
            - string
            - 'null'
          description: The first name of the contact person for this other-name.
          example: John
        middleName:
          type:
            - string
            - 'null'
          description: The middle name of the contact person for this other-name.
          example: A.
        lastName:
          type:
            - string
            - 'null'
          description: The last name of the contact person for this other-name.
          example: Doe
        address:
          oneOf:
            - $ref: '#/components/schemas/qbd_address'
            - type: 'null'
          description: The other-name's address.
        phone:
          type:
            - string
            - 'null'
          description: The other-name's primary telephone number.
          example: +1-555-123-4567
        alternatePhone:
          type:
            - string
            - 'null'
          description: The other-name's alternate telephone number.
          example: +1-555-987-6543
        fax:
          type:
            - string
            - 'null'
          description: The other-name's fax number.
          example: +1-555-555-1212
        email:
          type:
            - string
            - 'null'
          description: The other-name's email address.
          example: other-name@example.com
        contact:
          type:
            - string
            - 'null'
          description: The name of the primary contact person for this other-name.
          example: Jane Smith
        alternateContact:
          type:
            - string
            - 'null'
          description: The name of a alternate contact person for this other-name.
          example: Bob Johnson
        accountNumber:
          type:
            - string
            - '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:
          type:
            - string
            - 'null'
          description: A note or comment about this other-name.
          example: This employee is a key employee.
        externalId:
          type:
            - string
            - 'null'
          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
        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:
          type: string
          const: qbd_payment_method
          description: The type of object. This value is always `"qbd_payment_method"`.
          example: 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_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:
          type: string
          const: qbd_payroll_wage_item
          description: The type of object. This value is always `"qbd_payroll_wage_item"`.
          example: 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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 account used to track wage expenses paid through this
            payroll wage item.
          example:
            id: 80000001-1234567890
            fullName: Expenses:Payroll
        overtimeMultiplier:
          type:
            - string
            - '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:
          type:
            - string
            - '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:
          type:
            - string
            - '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:
          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:
              type:
                - string
                - 'null'
              enum:
                - accounts
                - items
                - names
                - none
                - 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:
              type:
                - string
                - 'null'
              format: date
              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-31'
          required:
            - isUsingAccountNumbers
            - isRequiringAccounts
            - isUsingClassTracking
            - defaultTransactionClass
            - isUsingAuditTrail
            - isAssigningJournalEntryNumbers
            - closingDate
          additionalProperties: false
          title: The Accounting Preferences object
          x-conductor-object-type: nested
          description: The accounting preferences for this company file.
        financeCharges:
          type: object
          properties:
            annualInterestRate:
              type:
                - number
                - '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:
              type:
                - number
                - '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:
              type:
                - object
                - 'null'
              properties:
                id:
                  type:
                    - string
                    - 'null'
                  description: >-
                    The unique identifier assigned by QuickBooks to this object.
                    This ID is unique across all objects of the same type, but
                    not across different QuickBooks object types.
                  example: 80000001-1234567890
                fullName:
                  type:
                    - string
                    - 'null'
                  description: >-
                    The fully-qualified unique name for this object, formed by
                    combining the 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 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
          description: >-
            The finance charge preferences for this company file. These settings
            determine how late payment charges are calculated and applied to
            customer accounts.
        jobsAndEstimates:
          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
          description: The jobs and estimates preferences for this company file.
        multiCurrency:
          oneOf:
            - $ref: '#/components/schemas/qbd_multi_currency_preferences'
            - type: 'null'
          description: The multi-currency preferences for this company file.
        multiLocationInventory:
          oneOf:
            - $ref: '#/components/schemas/qbd_multi_location_inventory_preferences'
            - type: 'null'
          description: The multi-location inventory preferences for this company file.
        purchasesAndVendors:
          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:
              type:
                - object
                - 'null'
              properties:
                id:
                  type:
                    - string
                    - 'null'
                  description: >-
                    The unique identifier assigned by QuickBooks to this object.
                    This ID is unique across all objects of the same type, but
                    not across different QuickBooks object types.
                  example: 80000001-1234567890
                fullName:
                  type:
                    - string
                    - 'null'
                  description: >-
                    The fully-qualified unique name for this object, formed by
                    combining the 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 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
          description: The purchases and vendors preferences for this company file.
        reports:
          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
          description: The reporting preferences for this company file.
        salesAndCustomers:
          type: object
          properties:
            defaultShippingMethod:
              type:
                - object
                - 'null'
              properties:
                id:
                  type:
                    - string
                    - 'null'
                  description: >-
                    The unique identifier assigned by QuickBooks to this object.
                    This ID is unique across all objects of the same type, but
                    not across different QuickBooks object types.
                  example: 80000001-1234567890
                fullName:
                  type:
                    - string
                    - 'null'
                  description: >-
                    The fully-qualified unique name for this object, formed by
                    combining the 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 shipping method used in all "Ship Via" fields for
                this company file.
              example:
                id: 80000001-1234567890
                fullName: FedEx Ground
            defaultShipmentOrigin:
              type:
                - string
                - '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:
              type:
                - string
                - '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:
              oneOf:
                - $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
          description: The sales and customers preferences for this company file.
        salesTax:
          oneOf:
            - $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:
          oneOf:
            - $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:
          type: object
          properties:
            isAutomaticLoginAllowed:
              type: boolean
              description: >-
                Indicates whether applications can use auto-login to access this
                company file.
              example: true
            automaticLoginUserName:
              type:
                - string
                - '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
          description: The current application access rights for this company file.
        itemsAndInventory:
          oneOf:
            - $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:
          type:
            - string
            - 'null'
          enum:
            - accounts
            - items
            - names
            - none
            - 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:
          type:
            - string
            - 'null'
          format: date
          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-31'
      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:
          type:
            - number
            - '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:
          type:
            - number
            - '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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - boolean
            - '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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - boolean
            - '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:
          type:
            - boolean
            - '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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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_sales_and_customers_preferences:
      type: object
      properties:
        defaultShippingMethod:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 shipping method used in all "Ship Via" fields for this
            company file.
          example:
            id: 80000001-1234567890
            fullName: FedEx Ground
        defaultShipmentOrigin:
          type:
            - string
            - '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:
          type:
            - string
            - '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:
          oneOf:
            - $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_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:
          type:
            - boolean
            - '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_tax_preferences:
      type: object
      properties:
        defaultItemSalesTax:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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:
          type:
            - boolean
            - 'null'
          description: >-
            Indicates whether this company file is configured to use tax codes
            for vendors.
          example: true
        isUsingCustomerTaxCode:
          type:
            - boolean
            - 'null'
          description: >-
            Indicates whether this company file is configured to use tax codes
            for customers.
          example: true
        isUsingTaxInclusivePrices:
          type:
            - boolean
            - '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:
          type:
            - string
            - '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:
          type:
            - boolean
            - 'null'
          description: >-
            Indicates whether enhanced inventory receiving is enabled for this
            company file.
          example: true
        inventoryTrackingMethod:
          type:
            - string
            - 'null'
          enum:
            - none
            - serial_number
            - lot_number
            - null
          description: >-
            Specifies the type of inventory tracking that this company file
            uses.
          example: serial_number
        isInventoryExpirationDateEnabled:
          type:
            - boolean
            - '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:
          type:
            - boolean
            - 'null'
          description: >-
            Indicates whether serial/lot number tracking is enabled for sales
            transactions in this company file.
          example: true
        isTrackingOnPurchaseTransactionsEnabled:
          type:
            - boolean
            - 'null'
          description: >-
            Indicates whether serial/lot number tracking is enabled for purchase
            transactions in this company file.
          example: true
        isTrackingOnInventoryAdjustmentEnabled:
          type:
            - boolean
            - 'null'
          description: >-
            Indicates whether serial/lot number tracking is enabled for
            inventory adjustments in this company file.
          example: true
        isTrackingOnBuildAssemblyEnabled:
          type:
            - boolean
            - 'null'
          description: >-
            Indicates whether serial/lot number tracking is enabled for build
            assemblies in this company file.
          example: true
        isFifoEnabled:
          type:
            - boolean
            - '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:
          type:
            - string
            - 'null'
          format: date
          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-01'
        isBinTrackingEnabled:
          type:
            - boolean
            - '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:
          type:
            - boolean
            - '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:
          type: string
          const: qbd_price_level
          description: The type of object. This value is always `"qbd_price_level"`.
          example: 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:
          type:
            - string
            - '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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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:
          type:
            - string
            - '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:
          type:
            - string
            - '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:
          type: string
          const: qbd_purchase_order
          description: The type of object. This value is always `"qbd_purchase_order"`.
          example: 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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 purchase order for goods or services
            purchased.
          example:
            id: 80000001-1234567890
            fullName: Acme Supplies Ltd.
        class:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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'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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 site location where inventory for the item associated with this
            purchase order is stored.
          example:
            id: 80000001-1234567890
            fullName: Main Warehouse
        shipToEntity:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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, vendor, employee, or other entity to whom this
            purchase order is to be shipped.
          example:
            id: 80000001-1234567890
            fullName: Customer
        documentTemplate:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - string
            - '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:
          oneOf:
            - $ref: '#/components/schemas/qbd_address'
            - type: 'null'
          description: The address of the vendor who sent this purchase order.
        shippingAddress:
          oneOf:
            - $ref: '#/components/schemas/qbd_address'
            - type: 'null'
          description: The purchase order's shipping address.
        terms:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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's payment terms, defining when payment is due and
            any applicable discounts.
          example:
            id: 80000001-1234567890
            fullName: Net 30
        dueDate:
          type:
            - string
            - 'null'
          format: date
          description: >-
            The date by which this purchase order must be paid, in ISO 8601
            format (YYYY-MM-DD).
          example: '2024-10-31'
        expectedDate:
          type:
            - string
            - 'null'
          format: date
          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'
        shippingMethod:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 shipping method used for this purchase order, such as standard
            mail or overnight delivery.
          example:
            id: 80000001-1234567890
            fullName: FedEx Ground
        shipmentOrigin:
          type:
            - string
            - '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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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'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:
          type:
            - number
            - '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:
          type:
            - string
            - '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:
          type:
            - boolean
            - 'null'
          description: >-
            Indicates whether all items in this purchase order have been
            received and none of them were closed manually.
          example: false
        memo:
          type:
            - string
            - '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:
          type:
            - string
            - 'null'
          description: >-
            A message to be printed on this purchase order for the vendor to
            read.
          example: Please include packing slip with shipment
        isQueuedForPrint:
          type:
            - boolean
            - 'null'
          description: >-
            Indicates whether this purchase order is included in the queue of
            documents for QuickBooks to print.
          example: true
        isQueuedForEmail:
          type:
            - boolean
            - 'null'
          description: >-
            Indicates whether this purchase order is included in the queue of
            documents for QuickBooks to email to the customer.
          example: true
        salesTaxCode:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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. If QuickBooks is not
            set up to charge sales tax (via the "Do You Charge Sales Tax?"
            preference), it will assign the default non-taxable code to all
            sales.
          example:
            id: 80000001-1234567890
            fullName: Non
        otherCustomField1:
          type:
            - string
            - '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:
          type:
            - string
            - '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:
          type:
            - string
            - 'null'
          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
        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:
          type: string
          const: qbd_purchase_order_line
          description: >-
            The type of object. This value is always
            `"qbd_purchase_order_line"`.
          example: qbd_purchase_order_line
        item:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - string
            - 'null'
          description: >-
            The purchase order line's stock keeping unit (SKU), which is
            sometimes the manufacturer's part number.
          example: MPN-123456
        description:
          type:
            - string
            - 'null'
          description: A description of this purchase order line.
          example: Office chairs - Herman Miller Aeron (Black)
        quantity:
          type:
            - number
            - '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:
          type:
            - string
            - '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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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: >-
            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:
          type:
            - string
            - '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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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'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:
          type:
            - string
            - '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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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: >-
            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:
          type:
            - string
            - 'null'
          format: date
          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'
        salesTaxCode:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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. If QuickBooks is not
            set up to charge sales tax (via the "Do You Charge Sales Tax?"
            preference), it will assign the default non-taxable code to all
            sales.
          example:
            id: 80000001-1234567890
            fullName: Non
        receivedQuantity:
          type:
            - number
            - 'null'
          description: >-
            The quantity that has been received against this purchase order
            line.
          example: 5
        unbilledQuantity:
          type:
            - number
            - 'null'
          description: The quantity that has not been billed for this purchase order line.
          example: 2
        isBilled:
          type:
            - boolean
            - '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:
          type:
            - string
            - '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:
          type:
            - string
            - '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:
          type: string
          const: qbd_purchase_order_line_group
          description: >-
            The type of object. This value is always
            `"qbd_purchase_order_line_group"`.
          example: qbd_purchase_order_line_group
        itemGroup:
          type: object
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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:
          type:
            - string
            - 'null'
          description: A description of this purchase order line group.
          example: Office supplies bundle
        quantity:
          type:
            - number
            - '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:
          type:
            - string
            - '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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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: >-
            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'
        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
        - 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:
          type: string
          const: qbd_receive_payment
          description: The type of object. This value is always `"qbd_receive_payment"`.
          example: 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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 to which the payment for this
            receive-payment is credited.
          example:
            id: 80000001-1234567890
            fullName: Acme Corporation
        receivablesAccount:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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-Receivable (A/R) account to which this receive-payment
            is assigned, used to track the amount owed. If not specified,
            QuickBooks Desktop will use its default A/R account.


            **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:
          type:
            - string
            - '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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - number
            - '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:
          type:
            - string
            - '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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 receive-payment's payment method (e.g., cash, check, credit
            card).
          example:
            id: 80000001-1234567890
            fullName: Credit Card
        memo:
          type:
            - string
            - '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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 the funds for this receive-payment will be or have
            been deposited.
          example:
            id: 80000001-1234567890
            fullName: Undeposited Funds
        creditCardTransaction:
          oneOf:
            - $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:
          type:
            - string
            - '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:
          type:
            - string
            - '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:
          type:
            - string
            - 'null'
          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
        appliedToTransactions:
          type: array
          items:
            $ref: '#/components/schemas/qbd_receivable_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_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:
          type: string
          const: qbd_sales_order
          description: The type of object. This value is always `"qbd_sales_order"`.
          example: 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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 sales order.
          example:
            id: 80000001-1234567890
            fullName: Acme Corporation
        class:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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'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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - string
            - '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:
          oneOf:
            - $ref: '#/components/schemas/qbd_address'
            - type: 'null'
          description: The sales order's billing address.
        shippingAddress:
          oneOf:
            - $ref: '#/components/schemas/qbd_address'
            - type: 'null'
          description: The sales order's shipping address.
        purchaseOrderNumber:
          type:
            - string
            - '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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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's payment terms, defining when payment is due and
            any applicable discounts.
          example:
            id: 80000001-1234567890
            fullName: Net 30
        dueDate:
          type:
            - string
            - 'null'
          format: date
          description: >-
            The date by which this sales order must be paid, in ISO 8601 format
            (YYYY-MM-DD).
          example: '2024-10-31'
        salesRepresentative:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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's sales representative. Sales representatives can be
            employees, vendors, or other names in QuickBooks.
          example:
            id: 80000001-1234567890
            fullName: Jane Doe
        shipmentOrigin:
          type:
            - string
            - '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:
          type:
            - string
            - 'null'
          format: date
          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'
        shippingMethod:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - string
            - 'null'
          description: >-
            The sales tax percentage applied to this sales order, represented as
            a decimal string.
          example: '0.07'
        salesTaxTotal:
          type:
            - string
            - '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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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'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:
          type:
            - number
            - '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:
          type:
            - string
            - '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:
          type:
            - boolean
            - 'null'
          description: Indicates whether all items in this sales order have been invoiced.
          example: false
        memo:
          type:
            - string
            - 'null'
          description: A memo or note for this sales order.
          example: Customer requested rush delivery
        customerMessage:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 message to display to the customer on the sales order.
          example:
            id: 80000001-1234567890
            fullName: Thank you for your business!
        isQueuedForPrint:
          type:
            - boolean
            - 'null'
          description: >-
            Indicates whether this sales order is included in the queue of
            documents for QuickBooks to print.
          example: true
        isQueuedForEmail:
          type:
            - boolean
            - 'null'
          description: >-
            Indicates whether this sales order is included in the queue of
            documents for QuickBooks to email to the customer.
          example: true
        salesTaxCode:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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. If QuickBooks is not
            set up to charge sales tax (via the "Do You Charge Sales Tax?"
            preference), it will assign the default non-taxable code to all
            sales.
          example:
            id: 80000001-1234567890
            fullName: Non
        otherCustomField:
          type:
            - string
            - '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:
          type:
            - string
            - 'null'
          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
        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:
          type:
            - string
            - 'null'
          enum:
            - blank
            - ecommerce
            - null
          description: The type of the sales channel for this sales order.
          example: ecommerce
        salesStoreName:
          type:
            - string
            - 'null'
          description: The name of the sales store for this sales order.
          example: Store 1
        salesStoreType:
          type:
            - string
            - '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:
          type: string
          const: qbd_sales_order_line
          description: The type of object. This value is always `"qbd_sales_order_line"`.
          example: qbd_sales_order_line
        item:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - string
            - 'null'
          description: A description of this sales order line.
          example: Widget Model X100 - Blue
        quantity:
          type:
            - number
            - '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:
          type:
            - string
            - '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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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: >-
            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:
          type:
            - string
            - '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:
          type:
            - string
            - 'null'
          description: >-
            The price of this sales order line expressed as a percentage.
            Typically used for discount or markup items.
          example: '10.5'
        class:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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'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:
          type:
            - string
            - '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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 site location where inventory for the item associated with this
            sales order line is stored.
          example:
            id: 80000001-1234567890
            fullName: Main Warehouse
        inventorySiteLocation:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - string
            - '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:
          type:
            - string
            - '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:
          type:
            - string
            - 'null'
          format: date
          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-31'
        salesTaxCode:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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. If QuickBooks is not
            set up to charge sales tax (via the "Do You Charge Sales Tax?"
            preference), it will assign the default non-taxable code to all
            sales.
          example:
            id: 80000001-1234567890
            fullName: Non
        quantityInvoiced:
          type:
            - number
            - '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:
          type:
            - string
            - '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:
          type:
            - string
            - '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:
          type: string
          const: qbd_sales_order_line_group
          description: >-
            The type of object. This value is always
            `"qbd_sales_order_line_group"`.
          example: qbd_sales_order_line_group
        itemGroup:
          type: object
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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:
          type:
            - string
            - 'null'
          description: A description of this sales order line group.
          example: Service Bundle 1
        quantity:
          type:
            - number
            - '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:
          type:
            - string
            - '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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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: >-
            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:
          type: string
          const: qbd_sales_receipt
          description: The type of object. This value is always `"qbd_sales_receipt"`.
          example: 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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 to which the payment for this sales
            receipt is credited.
          example:
            id: 80000001-1234567890
            fullName: Acme Corporation
        class:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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'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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - string
            - '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:
          oneOf:
            - $ref: '#/components/schemas/qbd_address'
            - type: 'null'
          description: The sales receipt's billing address.
        shippingAddress:
          oneOf:
            - $ref: '#/components/schemas/qbd_address'
            - type: 'null'
          description: The sales receipt's shipping address.
        isPending:
          type:
            - boolean
            - 'null'
          description: Indicates whether this sales receipt has not been completed.
          example: false
        checkNumber:
          type:
            - string
            - 'null'
          description: The check number of a check received for this sales receipt.
          example: '1234567890'
        paymentMethod:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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's payment method (e.g., cash, check, credit card).
          example:
            id: 80000001-1234567890
            fullName: Credit Card
        dueDate:
          type:
            - string
            - 'null'
          format: date
          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'
        salesRepresentative:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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's sales representative. Sales representatives can
            be employees, vendors, or other names in QuickBooks.
          example:
            id: 80000001-1234567890
            fullName: Jane Doe
        shippingDate:
          type:
            - string
            - 'null'
          format: date
          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'
        shippingMethod:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 shipping method used for this sales receipt, such as standard
            mail or overnight delivery.
          example:
            id: 80000001-1234567890
            fullName: FedEx Ground
        shipmentOrigin:
          type:
            - string
            - '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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - string
            - 'null'
          description: >-
            The sales tax percentage applied to this sales receipt, represented
            as a decimal string.
          example: '0.07'
        salesTaxTotal:
          type:
            - string
            - '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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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'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:
          type:
            - number
            - '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:
          type:
            - string
            - '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:
          type:
            - string
            - '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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 message to display to the customer on the sales receipt.
          example:
            id: 80000001-1234567890
            fullName: Thank you for your business!
        isQueuedForPrint:
          type:
            - boolean
            - 'null'
          description: >-
            Indicates whether this sales receipt is included in the queue of
            documents for QuickBooks to print.
          example: true
        isQueuedForEmail:
          type:
            - boolean
            - 'null'
          description: >-
            Indicates whether this sales receipt is included in the queue of
            documents for QuickBooks to email to the customer.
          example: true
        salesTaxCode:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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. If QuickBooks is not
            set up to charge sales tax (via the "Do You Charge Sales Tax?"
            preference), it will assign the default non-taxable code to all
            sales.
          example:
            id: 80000001-1234567890
            fullName: Non
        depositToAccount:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 the funds for this sales receipt will be or have
            been deposited.
          example:
            id: 80000001-1234567890
            fullName: Undeposited Funds
        creditCardTransaction:
          oneOf:
            - $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:
          type:
            - string
            - '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:
          type:
            - string
            - 'null'
          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
        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:
          type: string
          const: qbd_sales_receipt_line
          description: The type of object. This value is always `"qbd_sales_receipt_line"`.
          example: qbd_sales_receipt_line
        item:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - string
            - 'null'
          description: A description of this sales receipt line.
          example: New office chair
        quantity:
          type:
            - number
            - '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:
          type:
            - string
            - '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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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: >-
            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:
          type:
            - string
            - '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:
          type:
            - string
            - 'null'
          description: >-
            The price of this sales receipt line expressed as a percentage.
            Typically used for discount or markup items.
          example: '10.5'
        class:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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'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:
          type:
            - string
            - '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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 site location where inventory for the item associated with this
            sales receipt line is stored.
          example:
            id: 80000001-1234567890
            fullName: Main Warehouse
        inventorySiteLocation:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - string
            - '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:
          type:
            - string
            - '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:
          type:
            - string
            - 'null'
          format: date
          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-31'
        serviceDate:
          type:
            - string
            - 'null'
          format: date
          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'
        salesTaxCode:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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. If QuickBooks is not
            set up to charge sales tax (via the "Do You Charge Sales Tax?"
            preference), it will assign the default non-taxable code to all
            sales.
          example:
            id: 80000001-1234567890
            fullName: Non
        otherCustomField1:
          type:
            - string
            - '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:
          type:
            - string
            - '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:
          oneOf:
            - $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:
          type: string
          const: qbd_sales_receipt_line_group
          description: >-
            The type of object. This value is always
            `"qbd_sales_receipt_line_group"`.
          example: qbd_sales_receipt_line_group
        itemGroup:
          type: object
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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:
          type:
            - string
            - 'null'
          description: A description of this sales receipt line group.
          example: Standard widget bulk package
        quantity:
          type:
            - number
            - '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:
          type:
            - string
            - '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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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: >-
            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'
        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
        - 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:
          type: string
          const: qbd_sales_representative
          description: >-
            The type of object. This value is always
            `"qbd_sales_representative"`.
          example: 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:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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:
          type: string
          const: qbd_sales_tax_code
          description: The type of object. This value is always `"qbd_sales_tax_code"`.
          example: 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:
          type:
            - string
            - 'null'
          description: A description of this sales-tax code.
          example: Standard tax rate for California
        salesTaxItem:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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_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:
          type: string
          const: qbd_sales_tax_item
          description: The type of object. This value is always `"qbd_sales_tax_item"`.
          example: 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:
          type:
            - string
            - '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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - string
            - '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:
          type:
            - string
            - '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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - string
            - 'null'
          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
        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_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:
          type: string
          const: qbd_service_item
          description: The type of object. This value is always `"qbd_service_item"`.
          example: 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:
          type:
            - string
            - '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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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. If QuickBooks is not
            set up to charge sales tax (via the "Do You Charge Sales Tax?"
            preference), it will assign the default non-taxable code to all
            sales.
          example:
            id: 80000001-1234567890
            fullName: Non
        salesOrPurchaseDetails:
          oneOf:
            - $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:
          oneOf:
            - $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:
          type:
            - string
            - 'null'
          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
        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:
          type: string
          const: qbd_shipping_method
          description: The type of object. This value is always `"qbd_shipping_method"`.
          example: 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:
          type: string
          const: qbd_standard_term
          description: The type of object. This value is always `"qbd_standard_term"`.
          example: 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:
          type:
            - number
            - 'null'
          description: The number of days until payment is due.
          example: 30
        discountDays:
          type:
            - number
            - 'null'
          description: >-
            The number of days within which payment must be received to qualify
            for the discount specified by `discountPercentage`.
          example: 10
        discountPercentage:
          type:
            - string
            - '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:
          type: string
          const: qbd_subtotal_item
          description: The type of object. This value is always `"qbd_subtotal_item"`.
          example: 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:
          type:
            - string
            - '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:
          type:
            - string
            - '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:
          type:
            - string
            - 'null'
          enum:
            - finance_charge
            - reimbursable_expense_group
            - reimbursable_expense_subtotal
            - null
          description: The type of special item for this subtotal item.
          example: finance_charge
        externalId:
          type:
            - string
            - 'null'
          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
        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:
          type: string
          const: qbd_template
          description: The type of object. This value is always `"qbd_template"`.
          example: 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:
          type: string
          const: qbd_time_tracking_activity
          description: >-
            The type of object. This value is always
            `"qbd_time_tracking_activity"`.
          example: 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:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 (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:
          type:
            - string
            - 'null'
          description: A note or comment about this time tracking activity.
          example: Project planning meeting with client.
        billingStatus:
          type:
            - string
            - 'null'
          enum:
            - billable
            - has_been_billed
            - not_billable
            - 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:
          type:
            - string
            - 'null'
          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
        isBilled:
          type:
            - boolean
            - '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
          description: The type of transaction.
          example: invoice
        transactionId:
          type: string
          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:
          type:
            - string
            - 'null'
          description: >-
            The QuickBooks-assigned unique identifier of this transaction line.
            If `null`, this result is a transaction object.
          example: 456DEF-1234567890
        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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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, vendor, employee, or person on QuickBooks's "Other
            Names" list associated with this transaction.
          example:
            id: 80000001-1234567890
            fullName: Acme Corporation
        account:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - string
            - '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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - number
            - '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:
          type:
            - string
            - '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:
          type:
            - string
            - '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:
          type: string
          const: qbd_transfer
          description: The type of object. This value is always `"qbd_transfer"`.
          example: 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:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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:
          type:
            - string
            - 'null'
          description: The balance of the account from which money will be transferred.
          example: '1000.00'
        targetAccount:
          type: object
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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:
          type:
            - string
            - 'null'
          description: The balance of the account to which money will be transferred.
          example: '5000.00'
        class:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - string
            - '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:
          type: string
          const: qbd_unit_of_measure_set
          description: >-
            The type of object. This value is always
            `"qbd_unit_of_measure_set"`.
          example: 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:
          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
          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.
        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:
          type: string
          const: qbd_vendor_credit
          description: The type of object. This value is always `"qbd_vendor_credit"`.
          example: 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:
          type: object
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 vendor credit for goods or services
            purchased.
          example:
            id: 80000001-1234567890
            fullName: Acme Supplies Ltd.
        payablesAccount:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 vendor credit is
            assigned, used to track the amount owed. If not specified,
            QuickBooks Desktop will use its default A/P account.


            **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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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:
          type:
            - number
            - '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:
          type:
            - string
            - '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:
          type:
            - string
            - '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:
          type:
            - string
            - 'null'
          description: A memo or note for this vendor credit.
          example: Credit for returned merchandise - Invoice INV-1234
        salesTaxCode:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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. If QuickBooks is not
            set up to charge sales tax (via the "Do You Charge Sales Tax?"
            preference), it will assign the default non-taxable code to all
            sales.
          example:
            id: 80000001-1234567890
            fullName: Non
        externalId:
          type:
            - string
            - 'null'
          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
        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:
          type:
            - string
            - '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**: This field is almost always present, but due to a known
            QBD bug, it can be absent 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.setCredit` to reduce payment amounts.
        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:
          type: string
          const: qbd_vendor
          description: The type of object. This value is always `"qbd_vendor"`.
          example: 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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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'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:
          type:
            - string
            - '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:
          type:
            - string
            - '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:
          type:
            - string
            - 'null'
          description: The first name of the contact person for this vendor.
          example: John
        middleName:
          type:
            - string
            - 'null'
          description: The middle name of the contact person for this vendor.
          example: A.
        lastName:
          type:
            - string
            - 'null'
          description: The last name of the contact person for this vendor.
          example: Doe
        jobTitle:
          type:
            - string
            - 'null'
          description: The job title of the contact person for this vendor.
          example: Purchasing Manager
        billingAddress:
          oneOf:
            - $ref: '#/components/schemas/qbd_address'
            - type: 'null'
          description: The vendor's billing address.
        shippingAddress:
          oneOf:
            - $ref: '#/components/schemas/qbd_address'
            - type: 'null'
          description: The vendor's shipping address.
        phone:
          type:
            - string
            - 'null'
          description: The vendor's primary telephone number.
          example: +1-555-123-4567
        alternatePhone:
          type:
            - string
            - 'null'
          description: The vendor's alternate telephone number.
          example: +1-555-987-6543
        fax:
          type:
            - string
            - 'null'
          description: The vendor's fax number.
          example: +1-555-555-1212
        email:
          type:
            - string
            - 'null'
          description: The vendor's email address.
          example: vendor@example.com
        ccEmail:
          type:
            - string
            - 'null'
          description: >-
            An email address to carbon copy (CC) on communications with this
            vendor.
          example: manager@example.com
        contact:
          type:
            - string
            - 'null'
          description: The name of the primary contact person for this vendor.
          example: Jane Smith
        alternateContact:
          type:
            - string
            - '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:
          type:
            - string
            - 'null'
          description: >-
            The vendor's name as it should appear on checks issued to this
            vendor.
          example: Acme Supplies Ltd.
        accountNumber:
          type:
            - string
            - '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:
          type:
            - string
            - '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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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's type, used for categorizing vendors into meaningful
            segments, such as industry or region.
          example:
            id: 80000001-1234567890
            fullName: Wholesale Supplier
        terms:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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's payment terms, defining when payment is due and any
            applicable discounts.
          example:
            id: 80000001-1234567890
            fullName: Net 30
        creditLimit:
          type:
            - string
            - '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:
          type:
            - string
            - 'null'
          description: The vendor's tax identification number (e.g., EIN or SSN).
          example: 12-3456789
        isEligibleFor1099:
          type:
            - boolean
            - '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:
          type:
            - string
            - '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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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's billing rate, used to override service item rates in
            time tracking activities.
          example:
            id: 80000001-1234567890
            fullName: Standard Rate
        externalId:
          type:
            - string
            - 'null'
          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
        salesTaxCode:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 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. If QuickBooks is not
            set up to charge sales tax (via the "Do You Charge Sales Tax?"
            preference), it will assign the default non-taxable code to all
            sales.
          example:
            id: 80000001-1234567890
            fullName: Non
        salesTaxCountry:
          type:
            - string
            - 'null'
          enum:
            - australia
            - canada
            - uk
            - us
            - null
          description: The country for which sales tax is collected for this vendor.
          example: us
        isSalesTaxAgency:
          type:
            - boolean
            - 'null'
          description: Indicates whether this vendor is a sales tax agency.
          example: false
        salesTaxReturn:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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's sales tax return information, used for tracking and
            reporting sales tax liabilities.
          example:
            id: 80000001-1234567890
            fullName: Quarterly Sales Tax Return
        taxRegistrationNumber:
          type:
            - string
            - 'null'
          description: The vendor's tax registration number, for use in Canada or the UK.
          example: GB123456789
        reportingPeriod:
          type:
            - string
            - 'null'
          enum:
            - monthly
            - quarterly
            - null
          description: The vendor's tax reporting period, for use in Canada or the UK.
          example: quarterly
        isTrackingPurchaseTax:
          type:
            - boolean
            - 'null'
          description: >-
            Indicates whether tax is tracked on purchases for this vendor, for
            use in Canada or the UK.
          example: true
        purchaseTaxAccount:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 used for tracking taxes on purchases for this vendor,
            for use in Canada or the UK.
          example:
            id: 80000001-1234567890
            fullName: GST Paid
        isTrackingSalesTax:
          type:
            - boolean
            - 'null'
          description: >-
            Indicates whether tax is tracked on sales for this vendor, for use
            in Canada or the UK.
          example: true
        salesTaxAccount:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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 used for tracking taxes on sales for this vendor, for
            use in Canada or the UK.
          example:
            id: 80000001-1234567890
            fullName: GST Collected
        isCompoundingTax:
          type:
            - boolean
            - '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:
                type:
                  - string
                  - 'null'
                description: >-
                  The unique identifier assigned by QuickBooks to this object.
                  This ID is unique across all objects of the same type, but not
                  across different QuickBooks object types.
                example: 80000001-1234567890
              fullName:
                type:
                  - string
                  - 'null'
                description: >-
                  The fully-qualified unique name for this object, formed by
                  combining the 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:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the 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'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.
