---
title: "Create manual transactions in bulk"
method: POST
path: "/transactions/{companyId}/{productId}/bulk"
tags: ["Transactions"]
---

# Create manual transactions in bulk

`POST /transactions/{companyId}/{productId}/bulk`

Creates transactions for a company's product in a single call, grouped by day. Returns an empty response with status `201` on success.

> **Manual products only.** This endpoint only works with products classified as "Manual". Using it with a `productId` that exists but is not classified as Manual returns a `400 Bad Request` error. If `productId` does not exist, or its associated bank record does not exist, a `404` is returned instead.

> **Mirrors the Embat website.** This endpoint behaves like adding manual transactions from the Embat website: submitting transactions for a given day **permanently replaces** any transactions previously recorded for that same day on that product. Replaced transactions cannot be recovered.

## Path parameters

- `companyId` string, required
- `productId` string, required

## Request body

- BulkPostTransactionsRequestSchema
  - `data` PostTransactionsRequestSchema[], required — Transactions to create for a Manual product. For each day covered by this list, any transactions previously recorded for that same day on the product are permanently replaced — this cannot be undone.
    - `operationDate` string, date, required — Date the transaction was recorded (booked).
    - `valueDate` string, date, required — Value date of the transaction, used for the product's balance.
    - `concept` string, required — Free-text description of the transaction.
    - `amount` number, required — Amount of the transaction, in the product's currency.

## Response `201`

Successful Response

- unknown

## Other responses

- `400` — The product exists but is not classified as Manual.
- `401` — Unauthorized. The bearer token is missing, invalid or expired.
- `404` — Company not found, the given `productId` does not exist, or its associated bank record does not exist.
- `422` — Validation Error
- `500` — Unexpected error. Contact support if it persists.

---

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