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

# Save a manual journal entry

> Save a new (or update an existing) manual journal entry



## OpenAPI

````yaml https://dev.hurdlr.com/rest/v1/devUtils/documentation?version=5&Authorization=dexfeE6aRK3zwXP4ku5aWm8w&env=sandbox post /v5/accounting/manualJournalEntry
openapi: 3.0.1
info:
  title: Tight API
  contact:
    name: Hurdlr, Inc. (dba Tight)
    url: https://www.tight.com
    email: api@tight.com
  version: 6.0.0
servers:
  - url: https://sandbox.hurdlr.com/rest
    description: Staging Environment
  - url: https://prod.hurdlr.com/rest
    description: Production Environment
security:
  - accessTokenSecurity: []
  - basicSecurity: []
tags:
  - name: Authentication
  - name: Banks
  - name: Business & Client Management
  - name: Invoicing
  - name: Revenue
  - name: Investments
  - name: Payouts
  - name: Bills
  - name: Expenses
  - name: Payroll
  - name: Reports
  - name: Accounting
  - name: Mileage
  - name: Taxes
  - name: Time Tracking
  - name: Imports
  - name: Files
  - name: Accountant
  - name: Audit Trail
  - name: Support
  - name: Tax Engine Express
  - name: Interview Endpoint
  - name: Ledgering
  - name: Configuration
  - name: Templates
paths:
  /v5/accounting/manualJournalEntry:
    post:
      tags:
        - Accounting
      summary: Save a manual journal entry
      description: Save a new (or update an existing) manual journal entry
      operationId: postManualJournalEntry
      requestBody:
        description: manualJournalEntry object
        content:
          '*/*':
            schema:
              $ref: '#/components/schemas/TRAX_POST_BODYManualJournalEntryPostDTOV5'
        required: true
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FormRetVal'
      security:
        - accessTokenSecurity: []
components:
  schemas:
    TRAX_POST_BODYManualJournalEntryPostDTOV5:
      properties:
        manualJournalEntry:
          $ref: '#/components/schemas/ManualJournalEntryPostDTOV5'
    FormRetVal:
      type: object
      properties:
        result:
          type: string
          description: The result of the action performed
          enum:
            - SUCCESS
            - FAILURE
        errors:
          $ref: '#/components/schemas/ValidationRetVal'
        id:
          type: string
          description: Id of the entity being acted upon
        webhook:
          $ref: '#/components/schemas/EntityUpdateEvent'
      description: Object containing details about result of the action performed
    ManualJournalEntryPostDTOV5:
      required:
        - date
        - description
      type: object
      properties:
        id:
          type: integer
          description: >-
            Id of the journal entry, required when updating an existing journal
            entry
          format: int64
        description:
          type: string
          description: Description of this journal entry
        date:
          type: string
          description: Date the transactions comprising this journal entry occurred
          format: date-time
        entryDate:
          type: string
          description: Date this journal entry was created
          format: date-time
        frequency:
          type: string
          description: Frequency of the journal entry
          example: ONE_TIME
          enum:
            - ONE_TIME
            - WEEKLY
            - BI_WEEKLY
            - MONTHLY
            - YEARLY
        isParent:
          type: boolean
          description: >-
            Whether this journal entry is a parent to recurring journal entries.
            Parent journal entries generally should not be directly displayed to
            the user, as its children are more pertinent and displaying both
            results in double counting.
          readOnly: true
        recurringParentId:
          type: integer
          description: >-
            Id of the recurring parent journal entry; populated if this journal
            entry is recurring
          format: int64
          readOnly: true
        cashTransactions:
          type: array
          description: >-
            List of cash-basis accounting transactions comprising this entry.
            The total of all drAmounts must sum to the total of all crAmounts.

            Providing both `cashTransactions` and `accrualTransactions` allows
            the user to switch between Cash Basis and Accrual Basis without
            requiring updates to the Journal.
          items:
            $ref: '#/components/schemas/GlTranConciseDTOV5'
        accrualTransactions:
          type: array
          description: >-
            List of accrual-basis accounting transactions comprising this entry.
            The total of all drAmounts must sum to the total of all crAmounts.

            Providing both `cashTransactions` and `accrualTransactions` allows
            the user to switch between Cash Basis and Accrual Basis without
            requiring updates to the Journal.
          items:
            $ref: '#/components/schemas/GlTranConciseDTOV5'
        apiEntryId:
          type: string
          description: Id of the journal entry record in your DB
        transactions:
          type: array
          description: >-
            List of accounting transactions comprising this entry. The total of
            all drAmounts must sum to the total of all crAmounts.
          items:
            $ref: '#/components/schemas/GlTranConciseDTOV5'
    ValidationRetVal:
      type: object
      properties:
        fieldErrors:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/ValidationError'
          description: Map of field-level errors, often originating from validation errors
        globalErrors:
          type: array
          description: List of higher-level errors
          items:
            $ref: '#/components/schemas/ValidationError'
      description: Error object containing details errors incurred, if any
    EntityUpdateEvent:
      type: object
      properties:
        userId:
          type: string
        accountantUserId:
          type: string
        type:
          type: string
          enum:
            - ENTITY_UPDATE
            - LIFECYCLE_EVENT
            - LIFECYCLE
    GlTranConciseDTOV5:
      required:
        - glAccountId
      type: object
      properties:
        glAccountId:
          type: integer
          description: GL account id, referencing an account in the chart of accounts
          format: int64
        drAmount:
          type: number
          description: Accounting debit amount; either drAmount or crAmount is required
        crAmount:
          type: number
          description: Accounting credit amount; either drAmount or crAmount is required
      description: >-
        List of accounting transactions comprising this entry. The total of all
        drAmounts must sum to the total of all crAmounts.
    ValidationError:
      type: object
      properties:
        type:
          type: string
          description: A broad categorization of the error
          enum:
            - DUPLICATE
            - REQUIRED
            - DELETE
            - INVALID_VALUE
            - NOT_MODIFIABLE
            - GENERAL
            - INVALID_FORMAT
        errorMessage:
          type: string
          description: Human-friendly message describing this error
        message:
          type: string
          writeOnly: true
          enum:
            - DUPLICATE
            - REQUIRED
            - DELETE
            - INVALID_VALUE
            - NOT_MODIFIABLE
            - GENERAL
            - INVALID_FORMAT
            - INVALID_MAPPING
      description: List of higher-level errors
  securitySchemes:
    accessTokenSecurity:
      type: oauth2
      flows:
        implicit:
          authorizationUrl: /auth/account
          scopes:
            write: ''

````