> ## Documentation Index
> Fetch the complete documentation index at: https://docs.conductor.is/llms.txt
> Use this file to discover all available pages before exploring further.

# Create a journal entry

> 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.



## OpenAPI

````yaml POST /quickbooks-desktop/journal-entries
openapi: 3.1.0
info:
  title: Conductor API
  version: 0.0.1
servers:
  - url: https://api.conductor.is/v1
security:
  - BearerAuth: []
paths:
  /quickbooks-desktop/journal-entries:
    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.
      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'
      security:
        - BearerAuth: []
      x-codeSamples:
        - lang: JavaScript
          source: |-
            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)
components:
  schemas:
    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_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
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: >-
        Your Conductor secret key using Bearer auth (e.g., `"Authorization:
        Bearer {{YOUR_SECRET_KEY}}"`).

````

Built with [Mintlify](https://mintlify.com).