---
title: "Get a transaction"
method: GET
path: "/v1/transactions/{id}"
tags: ["Transactions"]
---

# Get a transaction

`GET /v1/transactions/{id}`

## Request

- Base URL: `https://api.dynt.ai/v1/dynt-server.onrender.com`
- URL: `https://api.dynt.ai/v1/dynt-server.onrender.com/v1/transactions/{id}`
- Auth: HTTP bearer

One transaction, booked or pending.

## Path parameters

- `id` string, required: The resource id.

## Query parameters

- `status` 'booked' | 'pending' | 'all'

## Response `200`

OK

- object: A bank transaction, booked or pending (see status). Hidden transactions, duplicates and transactions of deleted accounts are never returned.
  - `id` string, required
  - `account_id` string, required
  - `status` 'booked' | 'pending', required: pending: any status the bank has not booked yet.
  - `date` string, required: The booking date.
  - `date_time` string, date-time, required: The booking instant; the `from`/`to` filters and the list order use it.
  - `amount` string, required: Signed amount in `currency`: positive is money in, negative is money out.
  - `direction` 'credit' | 'debit', required: credit: amount >= 0; debit: amount < 0.
  - `currency` string, required
  - `eur_amount` string, nullable, required: Decimal amount as a string with the currency's own decimals (ISO 4217: 2 for EUR, 0 for JPY, 3 for BHD, 4 for CLF), e.g. "1234.50"; eur_amount always has 2.
  - `fx_rate` string, nullable, required: The stored exchange rate used for eur_amount, as a decimal string; null when none is stored.
  - `description` string, nullable, required: The bank's own text for the transaction, or the entered description.
  - `merchant` object, nullable, required
    - `id` string, required
    - `name` string, required
  - `category` object, nullable, required
    - `id` string, required
    - `name` string, required
    - `group` 'revenue' | 'cost' | 'internal', required
  - `sub_category` object, nullable, required
    - `id` string, required
    - `name` string, required
  - `movement_type` 'payment' | 'refund' | 'chargeback' | 'transfer' | 'fx' | 'fee' | 'topup' | 'interest' | 'owner_contribution' | 'owner_withdrawal' | 'other', nullable, required: What kind of bank movement this is, when known.
  - `accounting_status` string, required: The row's bookkeeping review state in Dynt.
  - `proof_status` string, required: Whether the transaction has its receipts in Dynt.
  - `source` 'gocardless' | 'manual', required
  - `proofs` object[], required
    - `id` string, required
    - `filename` string, required
    - `content_type` string, required
    - `size_bytes` integer, nullable, required: File size in bytes; null when unknown.
    - `created_at` string, date-time, required: When the file was attached.
  - `updated_at` string, date-time, required: RFC 3339 date-time in UTC.

## Other responses

- `400`: A parameter is invalid or unknown, or the request has a body (code bad_request).
- `401`: Missing, unknown, revoked or expired integration key (code unauthorized).
- `403`: The key lacks the read permission (code forbidden).
- `404`: No such resource in the key's organization (code not_found).
- `429`: Rate limited (code rate_limited).
- `500`: Internal error (code internal_error).
- `503`: Server busy; retry after the Retry-After delay (code server_busy).

---

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