---
title: "Bulk update journal entries"
method: PUT
path: "/books/journal-entries/{booksId}"
tags: ["Books"]
---

# Bulk update journal entries

`PUT /books/journal-entries/{booksId}`

## Request

- Base URL: `https://api.mercury.com/api/v1`
- URL: `https://api.mercury.com/api/v1/books/journal-entries/{booksId}`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/mercurytechnologies/apis/mercury-api/docs/books/journal-entries/:booksId/put.ts> (a function with typed inputs; its response is checked against the schema)

## Path parameters

- `booksId` string, uuid, required

## Request body

- UpdateBooksAPIJournalEntriesRequest: Request to update multiple journal entries in a single call.
  - `updates` UpdateBooksAPIJournalEntryRequest[], required: The individual journal entry updates
    - `datetime` string, yyyy-mm-ddThh:MM:ssZ, nullable: Updated date and time
    - `description` string, size < 513, nullable: Updated description
    - `journalEntryId` string, base58 (max length 22), required: The ID of the journal entry to update
    - `lineEntryChanges` object, nullable: Changes to apply to line entries
      - `create` BooksAPIUpdateJournalEntryLECreate[], nullable: New line entries to add
        - `amount` number, double, required: The amount for this line entry
        - `debitCredit` 'debit' | 'credit', required: Whether this line entry is a debit or credit
        - `description` string, size < 4001, required: Description of the line entry
        - `ledgerId` string, base58 (max length 22), required: The ledger this line entry is posted to
        - `sortOrder` integer, nullable: Optional position within the journal entry. Omit to append at MAX(sort_order) + 1.
        - `tagIds` string[], nullable: Optional tags to associate with this line entry
      - `delete` string[], nullable: IDs of line entries to remove
      - `update` BooksAPIUpdateJournalEntryLEUpdate[], nullable: Existing line entries to modify
        - `amount` number, double, nullable: Updated amount
        - `debitCredit` 'debit' | 'credit', nullable: Updated debit/credit designation
        - `description` string, size < 4001, nullable: Updated description
        - `id` string, base58 (max length 22), required: The ID of the line entry to update
        - `ledgerId` string, base58 (max length 22), nullable: Updated ledger
        - `sortOrder` integer, nullable: Updated position within the journal entry. Omit to leave unchanged.
        - `tagIds` string[], nullable: Updated tags
    - `reviewStatus` 'unreviewed' | 'reviewed', nullable: New review status for the journal entry. Omit to leave the existing review status unchanged.

## Response `200`

- unknown[]
  - unknown

## Other responses

- `400`: Invalid `body`
- `404`: `booksId` not found

## Changes

- **2026-11-03** `95c77a617769`: 1 info
  - endpoint added
- **2026-10-16** `ab652aa5aa8e`: 1 breaking
  - api path removed without deprecation
- **2026-05-19** `5d01d7fe72a9`: 2 info
  - added the new optional request property `updates/items/lineEntryChanges/allOf[#/components/schemas/BooksAPIUpdateJournalEntryChanges]/create/items/sortOrder`
  - added the new optional request property `updates/items/lineEntryChanges/allOf[#/components/schemas/BooksAPIUpdateJournalEntryChanges]/update/items/sortOrder`

[Operation history](https://skmtc.dev/mercurytechnologies/apis/mercury-api/changes/books/journal-entries/:booksId/put.md)

---

[API](https://skmtc.dev/mercurytechnologies/apis/mercury-api.md) - [All operations](https://skmtc.dev/mercurytechnologies/apis/mercury-api/llms.txt) - [OpenAPI document](https://skmtc.dev/mercurytechnologies/apis/mercury-api/revisions/95c77a617769?raw)
