---
title: "Create a personal transaction"
method: POST
path: "/personal-finance/transactions"
tags: ["personal finance"]
---

# Create a personal transaction

`POST /personal-finance/transactions`

## Request

- Base URL: `http://localhost:3001`
- URL: `http://localhost:3001/personal-finance/transactions`
- Auth: `bearer` (a scheme the document does not define)

## Request body

- CreatePersonalTransactionDto
  - `type` 'expense' | 'income' | 'saving', required: Type of transaction
  - `description` string, required: Transaction description
  - `amount` number, required: Amount in the transaction currency
  - `currency` string, required: Currency code (ISO 4217)
  - `transactionDate` string, required: Transaction date (YYYY-MM-DD)
  - `categoryId` string: Category ID
  - `payee` string: Payee name
  - `notes` string: Additional notes
  - `savingsGoalId` string: Savings goal ID (required for type=saving)

## Response `201`

Transaction created

- PersonalTransactionResponseDto
  - `id` string, required
  - `userId` string, required
  - `categoryId` string, nullable, required
  - `type` 'expense' | 'income' | 'saving', required
  - `description` string, required
  - `amount` number, required
  - `currency` string, required
  - `transactionDate` string, date-time, required
  - `payee` string, nullable, required
  - `notes` string, nullable, required
  - `isFromGroupSync` boolean, required
  - `groupTransactionId` string, nullable, required
  - `savingsGoalId` string, nullable, required
  - `receiptUrl` string, nullable, required
  - `deletedAt` string, date-time, nullable, required
  - `createdAt` string, date-time, required
  - `updatedAt` string, date-time, required

---

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