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

# Get transaction

> Returns a single transaction by UUID. Responds `404` when the transaction does not belong to the
company in `X-On-Behalf-Of` or sits in an account the API key's member cannot access.




## OpenAPI

````yaml /specs/company.openapi.yaml get /developer/transactions/{id}
openapi: 3.1.0
info:
  title: Incard Developer API
  version: 0.1.0
  description: OpenAPI definition for the Incard Developer API.
servers:
  - url: https://api.incard.com
    description: Developer Gateway
security:
  - BearerAuth: []
tags:
  - name: ACCOUNTS
    description: Currency accounts and their available balances.
  - name: TRANSACTIONS
    description: Transaction history with filters, pagination, and running balances.
  - name: CARDS
    description: List cards and freeze or unfreeze them.
  - name: INVOICES
  - name: webhooks
paths:
  /developer/transactions/{id}:
    get:
      tags:
        - TRANSACTIONS
      summary: Get transaction
      description: >
        Returns a single transaction by UUID. Responds `404` when the
        transaction does not belong to the

        company in `X-On-Behalf-Of` or sits in an account the API key's member
        cannot access.
      operationId: get_transaction
      parameters:
        - name: id
          in: path
          required: true
          description: Transaction UUID.
          schema:
            type: string
        - name: user
          in: query
          required: false
          description: >-
            `true` includes a `user` object when the transaction has a
            `user_id`.
          schema:
            type: boolean
        - name: card
          in: query
          required: false
          description: >-
            `true` includes a `card` object when the transaction has a
            `card_token`.
          schema:
            type: boolean
      responses:
        '200':
          description: The transaction.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Transaction'
              example:
                id: 342ea759-8870-418a-aa4c-ebc3a93ff70d
                source_payment_id: ab8861be-020f-6449-655e-c7b00ff71b74
                reference: Sent from Incard
                payee_id: 6992e50e-dfd7-4d9c-891c-362ccfc01b58
                payee_route: local
                company_id: bebb185d-8210-4e66-ac63-397b49a1e09f
                account_id: 0d6c0a2a-2b08-49bc-89a9-eb936c9ff28c
                name: ACME Corp
                status: completed
                type: out
                direction: debit
                authorized_at: '2026-07-02T16:07:39.942Z'
                completed_at: '2026-07-02T16:08:11.104Z'
                transaction_at: '2026-07-02T16:07:39.917Z'
                account_amount:
                  value: '-300.00'
                  currency: GBP
                transaction_amount:
                  value: '-300.00'
                  currency: GBP
                base_amount:
                  value: '-300.00'
                  currency: GBP
                running_balance:
                  value: '4700.00'
                  currency: GBP
                user_id: 29b297ca-c617-437e-9c1d-32f494fbf44d
                user:
                  first_name: Alex
                  last_name: Example
                  icon_url: https://cdn.incard.com/avatars/29b297ca.png
                created_at: '2026-07-02T16:07:39.970773Z'
                updated_at: '2026-07-02T16:08:11.120114Z'
        '400':
          description: '`id` is not a UUID.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionError'
              example:
                error: id must be a UUID
        '401':
          description: Unauthorized
        '403':
          description: Forbidden — insufficient permission for this user
        '404':
          description: Transaction not found or not visible to this member.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionError'
              example:
                error: not found
components:
  schemas:
    Transaction:
      type: object
      title: Transaction
      description: >
        A transaction on one of the company's accounts. Optional fields are
        omitted from the JSON when they have no value.

        Amounts are signed: `debit` transactions carry negative values, `credit`
        transactions positive values.
      properties:
        id:
          description: >-
            Transaction UUID. Stable across status changes and matches the
            `data.id` in transaction webhooks.
          type: string
        source_payment_id:
          description: Identifier of the payment in the originating source system.
          type: string
        company_id:
          description: Company UUID that owns the transaction.
          type: string
        account_id:
          description: UUID of the account the transaction belongs to.
          type: string
        related_account_id:
          description: >-
            (Optional) For `transfer_*` and `exchange_*` types, the other
            company account involved.
          type: string
        name:
          description: Human-readable label (merchant, payee, or sender name).
          type: string
        status:
          description: >-
            Lifecycle status. `pending` transitions to `completed`, `declined`,
            or `reversed`; the other states are terminal.
          type: string
          enum:
            - pending
            - completed
            - declined
            - reversed
        type:
          description: Transaction type.
          type: string
          enum:
            - card
            - atm
            - refund
            - credit
            - out
            - in
            - fee
            - exchange_out
            - exchange_in
            - transfer_out
            - transfer_in
            - chargeback
            - reversal
            - adjustment
            - loyalty_in
            - loyalty_out
            - points_in
            - points_out
            - trophy
            - referral
            - direct_debit
            - direct_credit
            - direct_credit_return
            - recall
        direction:
          description: '`debit` for money leaving the account, `credit` for money arriving.'
          type: string
          enum:
            - debit
            - credit
        reference:
          description: (Optional) Free-text payment reference.
          type: string
        payee_id:
          description: (Optional) Payee identifier for outbound payments.
          type: string
        payee_route:
          description: (Optional) Payment rail used, for example `local`.
          type: string
        purpose_code:
          description: (Optional) Payment purpose code where the rail requires one.
          type: string
        provider:
          description: (Optional) Underlying payment provider.
          type: string
        recon_ref:
          description: (Optional) Reconciliation reference from the provider.
          type: string
        authorized_at:
          description: (Optional) When the transaction was authorised.
          type: string
          format: date-time
        completed_at:
          description: >-
            (Optional) When the transaction settled. Set once `status` is
            `completed`.
          type: string
          format: date-time
        scheduled_for:
          description: >-
            (Optional) For scheduled payments, when the payment is due to
            execute.
          type: string
          format: date-time
        transaction_at:
          description: When the transaction occurred. Default sort key.
          type: string
          format: date-time
        account_amount:
          description: >-
            Signed amount in the account currency. `null` only for rows with no
            amount yet.
          oneOf:
            - $ref: '#/components/schemas/Money'
            - type: 'null'
        fee_amount:
          $ref: '#/components/schemas/Money'
          description: >-
            (Optional) Fee charged, as a negative amount in the account
            currency. Omitted when zero.
        transaction_amount:
          $ref: '#/components/schemas/Money'
          description: >-
            (Optional) Signed amount in the currency the transaction was made
            in.
        base_amount:
          $ref: '#/components/schemas/Money'
          description: (Optional) Signed amount in the company's base currency.
        fx_rate:
          description: >-
            (Optional) `transaction_amount / account_amount`, present only when
            the two currencies differ. Six decimal places.
          type: string
        running_balance:
          description: >-
            Posted ledger balance of the account immediately after this
            transaction, ordered by `transaction_at`. Excludes pending holds.
          oneOf:
            - $ref: '#/components/schemas/Money'
            - type: 'null'
        points:
          description: (Optional) Reward points earned or redeemed.
          type: integer
        raw_merchant:
          description: (Optional) Merchant details as received from the card network.
          type: object
          properties:
            online:
              description: Whether the purchase was made online.
              type: boolean
            merchant_city:
              type: string
            merchant_country:
              description: ISO 3166-1 alpha-2 country code.
              type: string
            merchant_street:
              type: string
            merchant_region:
              type: string
            merchant_postcode:
              type: string
            mcc:
              description: Merchant category code.
              type: string
        merchant_id:
          description: >-
            (Optional) Incard merchant identifier once the merchant has been
            recognised.
          type: string
        enriched_merchant:
          description: (Optional) Display details for a recognised merchant.
          type: object
          properties:
            icon_url:
              type: string
            category:
              type: string
            display_name:
              type: string
        category_id:
          description: (Optional) Spend category UUID.
          type: string
        accounting_code:
          description: (Optional) Accounting code assigned to the transaction.
          type: object
          properties:
            provider:
              description: Accounting provider, for example `xero`.
              type: string
            id:
              type: string
            name:
              type: string
            code:
              type: integer
        user_id:
          description: (Optional) UUID of the user who initiated the transaction.
          type: string
        user:
          description: (Optional) Included when `user=true` and `user_id` is set.
          type: object
          properties:
            first_name:
              type: string
            last_name:
              type: string
            icon_url:
              type: string
        card_token:
          description: (Optional) Token of the card used, for `card` and `atm` types.
          type: string
        card:
          description: (Optional) Included when `card=true` and `card_token` is set.
          type: object
          properties:
            id:
              description: Card UUID.
              type: string
            name:
              description: Card name.
              type: string
            last4:
              description: Last four digits of the PAN.
              type: string
            theme:
              description: Card theme, or `null`.
              type:
                - string
                - 'null'
            type:
              description: Card type, for example `virtual` or `physical`.
              type: string
        trophy_id:
          description: (Optional) Trophy UUID for `trophy` rewards.
          type: string
        decline_reason:
          description: (Optional) Reason the transaction was declined.
          type: string
        note:
          description: (Optional) Note added by a team member.
          type: string
        created_at:
          description: When the transaction record was created.
          type: string
          format: date-time
        updated_at:
          description: When the transaction record was last updated.
          type: string
          format: date-time
      required:
        - id
        - source_payment_id
        - company_id
        - account_id
        - name
        - status
        - type
        - direction
        - transaction_at
        - account_amount
        - running_balance
        - created_at
        - updated_at
    TransactionError:
      type: object
      title: TransactionError
      properties:
        error:
          description: Human-readable error message.
          type: string
      required:
        - error
    Money:
      type: object
      title: Money
      description: A signed decimal amount with its currency.
      properties:
        value:
          description: >-
            Decimal amount as a string with two decimal places. Negative for
            money leaving the account.
          type: string
        currency:
          description: ISO 4217 currency code.
          type: string
      required:
        - value
        - currency
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: access_token
      description: Short-lived access token. Obtain with your api_key.

````