create_transaction
Create a new transaction (income, expense, or transfer). Requires accountId, amount (decimal), transactionType, and transferNature. paymentType is optional and defaults to the default payment type of the account. For transfers, also provide destinationAccountId and destinationAmount. Use splits to categorize portions of the amount. Use originalAmount + originalCurrencyCode to record what the purchase cost in its invoice currency when that differs from the account currency. Use paymentLegs to pay one purchase from several accounts.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| note | No | Optional note or description for the transaction | |
| time | No | Transaction date/time as ISO 8601 string. Defaults to now | |
| amount | Yes | Transaction amount as an unsigned decimal (e.g. 12.50). Never negative: transactionType sets the direction | |
| splits | No | Split the transaction across multiple categories | |
| tagIds | No | Tag IDs to assign to this transaction | |
| payeeId | No | Payee ID to assign | |
| accountId | Yes | ID of the account the transaction belongs to | |
| isPlanned | No | Mark the transaction as planned rather than an already-happened record | |
| categoryId | No | Category ID to assign to this transaction | |
| paymentLegs | No | Pay this income/expense from up to 4 more accounts. Each item is either { accountId, amount } to create a part on another account, or { transactionId } to link an existing transaction as a part (its amount stays). amount is in that account's currency; when it differs from this transaction's currency also pass paymentAmount, the part's value in this transaction's currency. Not allowed for transfers, refunds, planned or category-split transactions | |
| paymentType | No | Payment method used. Defaults to the account's default payment type, or bankTransfer | |
| originalAmount | No | Amount in the currency the purchase was originally priced in (decimal), e.g. 66.42 for a PLN invoice paid from a UAH account. Informational only: never affects balances. Requires originalCurrencyCode | |
| transferNature | Yes | Transfer type. Use not_transfer for regular income/expense | |
| transactionType | Yes | Whether this is income or expense | |
| destinationAmount | No | For transfers: amount received in destination account (decimal, greater than 0) | |
| destinationAccountId | No | For transfers: destination account ID | |
| originalCurrencyCode | No | ISO 4217 code of originalAmount (e.g. "PLN"). Requires originalAmount. Cannot be combined with transfer fields | |
| destinationTransactionId | No | For transfers: link to an existing destination transaction instead of creating one |