---
title: "Create a finance transaction on an entry (entryId required -- transactions are entry-scoped in v2)"
method: POST
path: "/groups/{groupId}/finance/transactions"
tags: ["Legacy (v1-compat)"]
---

# Create a finance transaction on an entry (entryId required -- transactions are entry-scoped in v2)

`POST /groups/{groupId}/finance/transactions`

## Request

- Base URL: `https://whatareyoudo.ing/api/v1`
- URL: `https://whatareyoudo.ing/api/v1/groups/{groupId}/finance/transactions`
- Auth: HTTP bearer

## Path parameters

- `groupId` string, uuid, required

## Request body

- CompatCreateTransactionRequest
  - `type` 'income' | 'expense' | 'transfer', required
  - `amount` number, required
  - `amountMinor` string: issue #63: exact alternative to amount -- wins when present
  - `sourceAssetId` string, uuid, nullable
  - `destAssetId` string, uuid, nullable
  - `payee` string, nullable
  - `shop` string, nullable
  - `shopId` string, uuid, nullable
  - `categoryId` string, uuid, nullable
  - `entryId` string, uuid, nullable
  - `description` string
  - `occurredAt` string
  - `occurredTime` string, nullable
  - `tags` string[]
  - `receiptKeys` string[]

## Response `201`

Created

- CompatTransaction
  - `id` string, required
  - `type` 'income' | 'expense' | 'transfer', required
  - `amount` number, required
  - `amount_minor` string, required: issue #63: exact integer minor-units mirror of amount
  - `currency` string, required: What amount and fee_amount are in: the accounts' currency (ISO 4217).
  - `source_asset_id` string, uuid, nullable, required
  - `dest_asset_id` string, uuid, nullable, required
  - `payee` string, nullable, required
  - `shop` string, nullable, required
  - `shop_id` string, uuid, nullable, required
  - `category_id` string, uuid, nullable, required
  - `entry_id` string, uuid, required
  - `description` string, required
  - `occurred_at` string, required
  - `occurred_time` string, nullable, required
  - `tags` string[], required
  - `receipts` object[], required
    - `url` string, required
  - `fee_amount` number, required
  - `fee_amount_minor` string, required: issue #63: exact integer minor-units mirror of fee_amount
  - `fee_payer` 'sender' | 'receiver' | 'split', required
  - `source_debit_amount` number, nullable, required
  - `dest_credit_amount` number, nullable, required

## Other responses

- `422`: entryId missing

---

[API](https://skmtc.dev/whatareyoudo/apis/whatcha-api.md) · [All operations](https://skmtc.dev/whatareyoudo/apis/whatcha-api/llms.txt) · [OpenAPI document](https://skmtc.dev/whatareyoudo/apis/whatcha-api/revisions/48dd8a54abea?raw)
