Skip to main content
GET
Get a transaction

Authorizations

Authorization
string
header
required

A workspace API key created in ThinkOut settings. One key reads one workspace.

Path Parameters

id
string<uuid>
required

Query Parameters

expand
enum<string>[]

Relations to return as objects instead of ids. Comma-separated. Expansion goes one level deep; an unknown name is rejected with invalid_expand.

Available options:
account,
category,
counterparty,
labels

Response

The transaction.

object
string
required
Allowed value: "transaction"
id
string<uuid>
required
date
string<date>
required

Booking date. There is no time component.

Example:

"2026-09-03"

amount
string
required

Decimal amount as a string with two decimals. Negative means an outflow on transactions, forecasts and report figures.

Pattern: ^-?[0-9]+\.[0-9]{2}$
Example:

"-1250.00"

currency
string
required

ISO 4217 alphabetic currency code.

Pattern: ^[A-Z]{3}$
Example:

"RON"

direction
enum<string>
required

Whether money comes in or goes out. On a transaction or forecast it follows the sign of amount.

Available options:
inflow,
outflow
status
enum<string>
required

pending transactions come from a bank and are not yet booked. Their amount can change when they book, so upsert by id.

Available options:
booked,
pending
source
enum<string>
required

How the transaction entered ThinkOut.

Available options:
manual,
import,
bank
description
string | null
required
Example:

"ORANGE ROMANIA SA"

comment
string | null
required

Free text added by users in ThinkOut.

account
required

An account id, or the full account when named in expand.

category
required

null for a split transaction, whose categorisation lives on its pieces.

counterparty
required

A counterparty id, the full counterparty when named in expand, or null when unattributed.

labels
(string<uuid> | object)[]
required

Label ids, or the full labels when labels is named in expand.

bank_details
object | null
required

null unless source is bank.

created_at
string<date-time>
required
updated_at
string<date-time>
required