---
title: "Bulk update transactions"
method: PATCH
path: "/transactions/bulk"
tags: ["Transactions"]
---

# Bulk update transactions

`PATCH /transactions/bulk`

Bulk update transactions for the authenticated team. If there's no change, returns it as it is.

## Request body

- object
  - `ids` string[], required — Array of transaction IDs to update.
  - `categorySlug` string, nullable — Category slug for the transactions.
  - `status` 'pending' | 'archived' | 'completed' | 'posted' | 'excluded' | 'exported' | 'null', nullable — Status to set for the transactions.
  - `frequency` 'weekly' | 'monthly' | 'annually' | 'irregular' | 'null', nullable — Recurring frequency to set for the transactions.
  - `internal` boolean — Whether the transactions are internal.
  - `note` string, nullable — Note to set for the transactions.
  - `assignedId` string, nullable — Assigned user ID for the transactions.
  - `recurring` boolean — Whether the transactions are recurring.
  - `tagId` string, nullable — Tag ID to set for the transactions.

## Response `200`

Transactions updated

- object
  - `meta` object, required — Pagination metadata for the transactions response
    - `cursor` string — Cursor for the next page of results, undefined if no more pages
    - `hasPreviousPage` boolean, required — Whether there are more transactions available on the previous page
    - `hasNextPage` boolean, required — Whether there are more transactions available on the next page
  - `data` TransactionResponse[], required — Array of transactions matching the query criteria
    - `id` string, uuid, required — Unique identifier of the transaction
    - `name` string, required — Name or description of the transaction
    - `amount` number, required — Monetary amount of the transaction
    - `taxAmount` number, nullable, required — Tax amount of the transaction
    - `taxRate` number, nullable, required — Tax rate of the transaction
    - `taxType` string, nullable, required — Tax type of the transaction
    - `currency` string, required — Currency code of the transaction in ISO 4217 format
    - `counterpartyName` string, nullable, required — Name of the counterparty
    - `date` string, required — Date and time of the transaction in ISO 8601 format
    - `category` object, nullable, required — Category information assigned to the transaction for organization
      - `id` string, required — Unique identifier of the category
      - `name` string, required — Display name of the category
      - `color` string, required — Hex color code associated with the category for UI display
      - `taxRate` number, nullable, required — Tax rate of the category
      - `taxType` string, nullable, required — Tax type of the category
      - `slug` string, required — URL-friendly slug of the category
    - `status` string, required — Current status of the transaction
    - `internal` boolean, nullable, required — Whether the transaction is internal (between own accounts)
    - `recurring` boolean, nullable, required — Whether the transaction is part of a recurring series
    - `manual` boolean, nullable, required — Whether the transaction was created manually (via API/form) rather than imported from bank connections
    - `frequency` string, nullable, required — Frequency of the recurring transaction if applicable (weekly, monthly, annually, irregular)
    - `isFulfilled` boolean, required — Whether the transaction has been fulfilled or processed
    - `note` string, nullable, required — Optional note or memo attached to the transaction
    - `account` object, nullable, required — Bank account information associated with the transaction. Null when no account is linked.
      - `id` string, required — Unique identifier of the bank account
      - `name` string, nullable, required — Display name of the bank account
      - `currency` string, nullable, required — Currency of the bank account in ISO 4217 format
      - `connection` object, nullable, required — Bank connection information associated with the account. Null for manual accounts.
        - `id` string, required — Unique identifier of the bank connection
        - `name` string, required — Name of the bank institution
        - `logoUrl` string, nullable, required — URL to the bank institution's logo image
    - `tags` object[], nullable, required — Array of tags associated with the transaction for categorization and filtering
      - `id` string, required — Unique identifier of the tag
      - `name` string, nullable, required — Display name of the tag
    - `attachments` object[], nullable, required — Array of file attachments associated with the transaction (receipts, invoices, etc.)
      - `id` string, required — Unique identifier of the attachment
      - `path` string[], required — Array of path segments for the attachment file storage location
      - `size` number, required — Size of the attachment file in bytes
      - `type` string, required — MIME type of the attachment file
      - `filename` string, nullable, required — Original filename of the attachment when uploaded

## Other responses

- `default` — An error occurred

---

[API](https://skmtc.net/midday-ai/apis/midday-api.md) · [All operations](https://skmtc.net/midday-ai/apis/midday-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/midday-ai/midday-api/versions/c0df9243c1b0/schema)
