> ## Documentation Index
> Fetch the complete documentation index at: https://developers.thinkout.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Citește o tranzacție

> Întoarce o tranzacție.



## OpenAPI

````yaml /openapi/v1.ro.yaml get /transactions/{id}
openapi: 3.1.0
info:
  title: ThinkOut API
  version: '1.0'
  description: >-
    Acces programatic la datele unui spațiu de lucru ThinkOut.


    În versiunea 1 fiecare endpoint este un `GET`. Listele folosesc același
    înveliș de răspuns și se paginează cu un cursor oriunde lista poate crește.


    Versiunea 1 se schimbă doar prin adăugare. Pot apărea oricând endpointuri
    noi, parametri opționali noi, câmpuri noi în răspuns și valori noi de
    enumerare, așa că tolerați câmpurile necunoscute și nu tratați niciodată o
    enumerare ca pe o mulțime închisă.
  contact:
    name: Suport ThinkOut
    url: https://developers.thinkout.io/guides/support
servers:
  - url: https://api.thinkout.io/v1
security:
  - apiKey: []
tags:
  - name: Bănci
    description: Conexiunile bancare ale spațiului de lucru și starea fiecăreia.
  - name: Conturi
    description: Conturi manuale, sincronizate cu banca și delegate, cu solduri calculate.
  - name: Tranzacții
    description: Mișcări înregistrate și în așteptare pe conturile spațiului de lucru.
  - name: Categorii
    description: Arborele de categorii al spațiului de lucru, pe direcție și activitate.
  - name: Parteneri
    description: >-
      Clienții și furnizorii cărora le sunt atribuite tranzacțiile și
      previziunile.
  - name: Etichete
    description: Etichete libere, grupate pe tipuri.
  - name: Previziuni
    description: Încasări și plăți planificate și tranzacțiile care le-au realizat.
  - name: Rapoarte
    description: >-
      Totaluri, nu rânduri. Sinteze peste tranzacții și previziuni, plus
      rapoartele de cash flow salvate în spațiul de lucru.
paths:
  /transactions/{id}:
    get:
      tags:
        - Tranzacții
      summary: Citește o tranzacție
      description: Întoarce o tranzacție.
      operationId: getTransaction
      parameters:
        - $ref: '#/components/parameters/id'
        - $ref: '#/components/parameters/transaction_expand'
      responses:
        '200':
          description: Tranzacția.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Transaction'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
components:
  parameters:
    id:
      name: id
      in: path
      required: true
      schema:
        type: string
        format: uuid
    transaction_expand:
      name: expand
      in: query
      description: >-
        Relații de întors ca obiecte complete în loc de identificatori. Separate
        prin virgulă.


        Fără el, fiecare relație este un identificator. Numind una aici,
        identificatorul este înlocuit cu obiectul către care arată. Extinderea
        merge un singur nivel; un nume nesuportat este respins.


        Aici se acceptă: `account`, `category`, `counterparty`, `labels`.
      style: form
      explode: false
      schema:
        type: array
        items:
          type: string
          enum:
            - account
            - category
            - counterparty
            - labels
      example: category,counterparty
  schemas:
    Transaction:
      type: object
      required:
        - object
        - id
        - date
        - amount
        - currency
        - direction
        - status
        - source
        - description
        - comment
        - account
        - category
        - counterparty
        - labels
        - bank_details
        - created_at
        - updated_at
      properties:
        object:
          type: string
          const: transaction
        id:
          type: string
          format: uuid
        date:
          type: string
          format: date
          description: Data înregistrării. Nu există componentă de timp.
          example: '2026-09-03'
        amount:
          $ref: '#/components/schemas/Money'
        currency:
          $ref: '#/components/schemas/Currency'
        direction:
          $ref: '#/components/schemas/Direction'
        status:
          $ref: '#/components/schemas/TransactionStatus'
        source:
          $ref: '#/components/schemas/TransactionSource'
        description:
          type:
            - string
            - 'null'
          example: ORANGE ROMANIA SA
        comment:
          type:
            - string
            - 'null'
          description: Text liber adăugat de utilizatori în ThinkOut.
        account:
          $ref: '#/components/schemas/ExpandableAccount'
        category:
          oneOf:
            - $ref: '#/components/schemas/ExpandableCategory'
            - type: 'null'
          description: >-
            `null` când tranzacția nu are categorie. Aici intră și orice
            tranzacție împărțită în ThinkOut, unde categorisirea a trecut pe
            bucăți, iar bucățile nu sunt expuse de acest API.
        counterparty:
          $ref: '#/components/schemas/ExpandableCounterparty'
        labels:
          $ref: '#/components/schemas/ExpandableLabels'
        bank_details:
          oneOf:
            - $ref: '#/components/schemas/BankDetails'
            - type: 'null'
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
      example:
        object: transaction
        id: 8f1c0a4e-2b1d-4c8e-9f3a-7d6e5c4b3a21
        date: '2026-09-03'
        amount: '-1250.00'
        currency: RON
        direction: outflow
        status: booked
        source: bank
        description: ORANGE ROMANIA SA
        comment: null
        account: c2d7e8f9-1a2b-4c3d-8e9f-0a1b2c3d4e5f
        category: 3b4c5d6e-7f80-4a1b-9c2d-3e4f5a6b7c8d
        counterparty: 9a8b7c6d-5e4f-4a3b-8c2d-1e0f9a8b7c6d
        labels:
          - 1f2e3d4c-5b6a-4978-8877-665544332211
        bank_details:
          payer: THINKOUT SRL
          payer_details: RO49INGB0000999900000001
          payee: ORANGE ROMANIA SA
          payee_details: RO12BTRL0000000000000002
          reference: Factura 2026-08 nr 1234567
          additional: null
        created_at: '2026-09-03T08:12:44Z'
        updated_at: '2026-09-03T08:12:44Z'
    Money:
      type: string
      description: >-
        Sumă zecimală ca șir de caractere. Cu semn la tranzacții, previziuni și
        cifre din rapoarte, unde negativ înseamnă ieșire. Semnul este cel care
        contează: `direction` este derivat din el, iar cele două nu pot fi
        niciodată în contradicție.
      pattern: ^-?[0-9]+(\.[0-9]+)?$
      example: '-1250.00'
    Currency:
      type: string
      description: Cod de monedă alfabetic ISO 4217.
      pattern: ^[A-Z]{3}$
      example: RON
    Direction:
      type: string
      description: >-
        Dacă banii intră sau ies. Pe o tranzacție sau pe o previziune urmează
        semnul lui `amount` și nu îl poate contrazice niciodată. Există ca
        răspunsurile să poată fi grupate și citite fără să inspectezi semnele.
      enum:
        - inflow
        - outflow
    TransactionStatus:
      type: string
      description: >-
        Tranzacțiile `pending` vin de la bancă și nu sunt încă înregistrate.
        Suma unei tranzacții în așteptare se poate schimba când se
        înregistrează, iar `updated_at` se modifică atunci, deci actualizează
        după `id` în loc să tratezi un rând în așteptare ca final.
      enum:
        - booked
        - pending
    TransactionSource:
      type: string
      description: Cum a intrat tranzacția în ThinkOut.
      enum:
        - manual
        - import
        - bank
    ExpandableAccount:
      description: >-
        Identificatorul unui cont, sau contul complet când este numit în
        `expand`.
      oneOf:
        - type: string
          format: uuid
        - $ref: '#/components/schemas/Account'
    ExpandableCategory:
      description: >-
        Identificatorul unei categorii, sau categoria completă când este numită
        în `expand`.
      oneOf:
        - type: string
          format: uuid
        - $ref: '#/components/schemas/Category'
    ExpandableCounterparty:
      description: >-
        Identificatorul unui partener, partenerul complet când este numit în
        `expand`, sau `null` când tranzacția nu este atribuită.
      oneOf:
        - type: string
          format: uuid
        - $ref: '#/components/schemas/Counterparty'
        - type: 'null'
    ExpandableLabels:
      description: >-
        Identificatori de etichete, sau etichetele complete când `labels` este
        numit în `expand`.
      type: array
      items:
        oneOf:
          - type: string
            format: uuid
          - $ref: '#/components/schemas/Label'
    BankDetails:
      type: object
      description: >-
        Câmpuri brute primite de la bancă. Prezente doar pe tranzacțiile cu
        `source: bank`.
      required:
        - payer
        - payer_details
        - payee
        - payee_details
        - reference
        - additional
      properties:
        payer:
          type:
            - string
            - 'null'
        payer_details:
          type:
            - string
            - 'null'
          description: >-
            Identificatorii contului plătitorului, așa cum sunt furnizați de
            bancă.
        payee:
          type:
            - string
            - 'null'
        payee_details:
          type:
            - string
            - 'null'
        reference:
          type:
            - string
            - 'null'
          description: Referința plății sau linia de informații.
        additional:
          type:
            - string
            - 'null'
    Error:
      type: object
      required:
        - error
      properties:
        error:
          type: object
          required:
            - type
            - code
            - message
            - param
            - request_id
          properties:
            type:
              type: string
              enum:
                - invalid_request
                - authentication
                - not_found
                - rate_limit
                - server
            code:
              type: string
              description: >-
                Motiv stabil, citibil de o mașină. Ramifică pe acesta, nu pe
                `message`. Codurile specifice rapoartelor sunt
                `too_many_groups`, `period_too_long`, `as_of_in_future` și
                `invalid_expand`.
            message:
              type: string
              description: >-
                Explicație pentru oameni, în engleză. Formularea se poate
                schimba.
            param:
              type:
                - string
                - 'null'
              description: Parametrul de query sau de cale vinovat, când există unul.
            request_id:
              type: string
              description: Menționează-l când contactezi suportul.
    Account:
      type: object
      required:
        - object
        - id
        - name
        - currency
        - group
        - source
        - balance
        - balance_as_of
        - opening_balance
        - opening_date
        - bank
        - external_account_id
        - original_name
        - created_at
        - updated_at
      properties:
        object:
          type: string
          const: account
        id:
          type: string
          format: uuid
        name:
          type: string
          example: ING Curent
        currency:
          $ref: '#/components/schemas/Currency'
        group:
          type:
            - string
            - 'null'
          description: Grupare cu text liber, atribuită în ThinkOut.
          example: Operational
        source:
          $ref: '#/components/schemas/AccountSource'
        balance:
          $ref: '#/components/schemas/Money'
        balance_as_of:
          type: string
          format: date
          description: >-
            Ziua al cărei sold de sfârșit de zi este raportat. Calculat la
            momentul cererii.
        opening_balance:
          $ref: '#/components/schemas/Money'
        opening_date:
          type: string
          format: date
          description: >-
            Data la care se aplică soldul inițial. Nu sunt așteptate tranzacții
            înainte de ea.
        bank:
          $ref: '#/components/schemas/ExpandableBank'
        external_account_id:
          type:
            - string
            - 'null'
          description: >-
            Identificatorul contului la furnizor, util pentru reconciliere.
            `null` pentru conturile manuale.
        original_name:
          type:
            - string
            - 'null'
          description: >-
            Numele contului așa cum îl raportează banca, înainte de orice
            redenumire în ThinkOut. `null` pentru conturile manuale.
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
      example:
        object: account
        id: c2d7e8f9-1a2b-4c3d-8e9f-0a1b2c3d4e5f
        name: ING Curent
        currency: RON
        group: Operational
        source: bank
        balance: '15230.45'
        balance_as_of: '2026-09-03'
        opening_balance: '1000.00'
        opening_date: '2024-01-01'
        bank: 5d6e7f80-9a1b-4c2d-8e3f-4a5b6c7d8e9f
        external_account_id: ACC-00012345
        original_name: Cont curent RON
        created_at: '2024-01-01T10:00:00Z'
        updated_at: '2026-08-30T06:00:00Z'
    Category:
      type: object
      required:
        - object
        - id
        - name
        - code
        - direction
        - activity
        - parent_id
        - position
        - color
        - created_at
        - updated_at
      properties:
        object:
          type: string
          const: category
        id:
          type: string
          format: uuid
        name:
          type: string
          example: Telecom
        code:
          type:
            - string
            - 'null'
          description: >-
            Identificatorul categoriei în șablonul din care a fost creat acest
            spațiu de lucru. `null` pentru o categorie creată de cineva.


            Doar `uncategorized_inflows` și `uncategorized_outflows` merită
            tratate special. Ele marchează cele două categorii în care stau
            banii neclasificați, există în fiecare spațiu de lucru, iar ThinkOut
            refuză să le șteargă. Orice alt cod depinde de șablonul folosit.
          example: uncategorized_outflows
        direction:
          $ref: '#/components/schemas/Direction'
        activity:
          $ref: '#/components/schemas/Activity'
        parent_id:
          type:
            - string
            - 'null'
          format: uuid
          description: '`null` pentru categoriile de nivel superior.'
        position:
          type: integer
          description: Ordinea între categoriile de pe același nivel, ca în ThinkOut.
        color:
          type:
            - string
            - 'null'
          description: Culoare hex cu litere mici, ca în ThinkOut.
          pattern: ^#[0-9a-f]{6}$
          example: '#1b7fe4'
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
      example:
        object: category
        id: 3b4c5d6e-7f80-4a1b-9c2d-3e4f5a6b7c8d
        name: Telecom
        code: null
        direction: outflow
        activity: operating
        parent_id: 6a7b8c9d-0e1f-4a2b-8c3d-4e5f6a7b8c9d
        position: 2
        color: '#1b7fe4'
        created_at: '2024-01-01T10:00:00Z'
        updated_at: '2024-01-01T10:00:00Z'
    Counterparty:
      type: object
      required:
        - object
        - id
        - name
        - country_code
        - color
        - symbol
        - created_at
        - updated_at
      properties:
        object:
          type: string
          const: counterparty
        id:
          type: string
          format: uuid
        name:
          type: string
          example: Orange
        country_code:
          type:
            - string
            - 'null'
          description: Cod de țară ISO 3166-1 alpha-2.
          pattern: ^[A-Z]{2}$
          example: RO
        color:
          type:
            - string
            - 'null'
          pattern: ^#[0-9a-f]{6}$
        symbol:
          type:
            - string
            - 'null'
          description: Text scurt afișat în avatarul partenerului în ThinkOut.
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
      example:
        object: counterparty
        id: 9a8b7c6d-5e4f-4a3b-8c2d-1e0f9a8b7c6d
        name: Orange
        country_code: RO
        color: '#e4571b'
        symbol: OR
        created_at: '2024-02-14T08:00:00Z'
        updated_at: '2024-02-14T08:00:00Z'
    Label:
      type: object
      required:
        - object
        - id
        - name
        - type
        - color
        - created_at
        - updated_at
      properties:
        object:
          type: string
          const: label
        id:
          type: string
          format: uuid
        name:
          type: string
          example: Q3
        type:
          oneOf:
            - $ref: '#/components/schemas/LabelType'
            - type: 'null'
          description: >-
            Grupul din care face parte eticheta, sau `null` când nu are
            niciunul. Un tip apare odată cu prima etichetă care îl folosește și
            dispare odată cu ultima, așa că nu are endpoint propriu.
        color:
          type:
            - string
            - 'null'
          pattern: ^#[0-9a-f]{6}$
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
      example:
        object: label
        id: 1f2e3d4c-5b6a-4978-8877-665544332211
        name: Q3
        type:
          id: 7c8d9e0f-1a2b-4c3d-8e4f-5a6b7c8d9e0f
          name: Quarter
        color: '#7c3aed'
        created_at: '2026-01-05T09:00:00Z'
        updated_at: '2026-01-05T09:00:00Z'
    AccountSource:
      type: string
      description: >-
        Conturile `delegated` sunt conturi bancare pe care alt spațiu de lucru
        le-a delegat către acesta.
      enum:
        - manual
        - bank
        - delegated
    ExpandableBank:
      description: >-
        Identificatorul unei conexiuni bancare, conexiunea completă când este
        numită în `expand`, sau `null` pentru un cont manual.
      oneOf:
        - type: string
          format: uuid
        - $ref: '#/components/schemas/Bank'
        - type: 'null'
    Activity:
      type: string
      description: >-
        Secțiunea din situația fluxurilor de numerar căreia îi aparține
        categoria.
      enum:
        - operating
        - investing
        - financing
    LabelType:
      type: object
      required:
        - id
        - name
      properties:
        id:
          type: string
          format: uuid
        name:
          type: string
          example: Quarter
    Bank:
      type: object
      description: >-
        O autorizare cu o singură bancă. Mai multe conturi pot folosi aceeași
        conexiune, iar un spațiu de lucru poate avea mai multe conexiuni la
        aceeași bancă.
      required:
        - object
        - id
        - name
        - country_code
        - status
        - last_sync_at
        - consent_expires_at
        - created_at
        - updated_at
      properties:
        object:
          type: string
          const: bank
        id:
          type: string
          format: uuid
        name:
          type: string
          description: Numele băncii, așa cum îl raportează furnizorul.
          example: ING Bank
        country_code:
          type:
            - string
            - 'null'
          description: Țara băncii, cod ISO 3166-1 alpha-2.
          pattern: ^[A-Z]{2}$
          example: RO
        status:
          $ref: '#/components/schemas/BankStatus'
        last_sync_at:
          type:
            - string
            - 'null'
          format: date-time
          description: >-
            Când a întors furnizorul date cu succes ultima oară. `null` dacă nu
            a făcut-o niciodată.


            Aceasta este vechimea datelor, nu vechimea conexiunii. O conexiune
            poate sta pe `connected` cu un `last_sync_at` vechi de câteva zile,
            iar acesta este cazul care merită o alertă.
        consent_expires_at:
          type:
            - string
            - 'null'
          format: date-time
          description: >-
            Când trebuie reînnoit consimțământul bancar, dacă furnizorul îl
            raportează. După ce trece, conexiunea nu mai întoarce tranzacții noi
            până când cineva o reaprobă.
        created_at:
          type: string
          format: date-time
          description: Când a fost autorizată prima dată conexiunea.
        updated_at:
          type: string
          format: date-time
      example:
        object: bank
        id: 5d6e7f80-9a1b-4c2d-8e3f-4a5b6c7d8e9f
        name: ING Bank
        country_code: RO
        status: connected
        last_sync_at: '2026-09-03T06:00:00Z'
        consent_expires_at: '2026-11-30T00:00:00Z'
        created_at: '2024-01-01T10:00:00Z'
        updated_at: '2026-09-03T06:00:00Z'
    BankStatus:
      type: string
      description: >-
        Starea conexiunii la ultimul schimb de date dintre ThinkOut și furnizor.


        `connected` înseamnă că funcționează. `loading` este o sincronizare în
        curs. `requires_action` cere ca o persoană să se autentifice sau să
        reaprobe conexiunea în ThinkOut, iar până atunci nu mai vin tranzacții
        noi. `error` este o eroare pe care ThinkOut nu a putut să o rezolve
        singur și acoperă orice stare a furnizorului pe care ThinkOut nu o poate
        încadra.


        Doar `connected` înseamnă că datele din spate sunt la zi.
      enum:
        - connected
        - loading
        - requires_action
        - error
  responses:
    BadRequest:
      description: Un parametru este invalid.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              type: invalid_request
              code: invalid_parameter
              message: Parameter 'from' must be a date in YYYY-MM-DD format.
              param: from
              request_id: req_01J8ZT4Q7Y6M3K
    Unauthorized:
      description: Cheia API lipsește, este necunoscută sau revocată.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              type: authentication
              code: unauthorized
              message: Invalid API key.
              param: null
              request_id: req_01J8ZT4Q7Y6M3K
    NotFound:
      description: Nu există niciun obiect cu acest id în spațiul de lucru al cheii.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              type: not_found
              code: resource_not_found
              message: No transaction with id 8f1c0a4e-2b1d-4c8e-9f3a-7d6e5c4b3a21.
              param: id
              request_id: req_01J8ZT4Q7Y6M3K
  securitySchemes:
    apiKey:
      type: http
      scheme: bearer
      description: >-
        O cheie API creată în setările ThinkOut. O cheie citește un singur
        spațiu de lucru.

````