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

# Get transaction by ID

> Retrieves a single transaction by ID. Optionally pass senderCustomerId or
recipientCustomerId to set which customer perspective the role field
reflects.



## OpenAPI

````yaml /api-reference/openapi.yaml get /transactions/{transactionId}
openapi: 3.0.3
info:
  title: Polygon OMS Public API
  version: v26.05.28-0001
  description: >-
    Unified API for moving money between crypto and fiat. Three ways to move
    money: Transactions (instant, wallet or card funded, including Cash-In for
    in-person cash deposits), Deposit Addresses (reusable crypto deposit
    configurations), and Virtual Accounts (dedicated bank accounts that
    auto-convert fiat to crypto). Standard transactions follow a two-step flow:
    create a Quote (pricing), then create a Transaction (execution). Cash-in
    codes generate a one-time deposit code for in-person cash deposits at retail
    locations.
  contact:
    name: Polygon OMS
    url: https://oms.polygon.technology
servers:
  - url: https://sandbox-api.polygon.technology/v0.9
    description: Sandbox
  - url: https://api.polygon.technology/v0.9
    description: Production
security:
  - BearerAuth: []
tags:
  - name: Auth
    description: Authentication via FrontEgg
  - name: Customers
    description: Customer management and KYC
  - name: Customer
  - name: Wallet
  - name: Quote
  - name: Transaction
  - name: Webhook
  - name: CashIns
  - name: CashLocation
  - name: Sandbox
  - name: Simulation
paths:
  /transactions/{transactionId}:
    get:
      tags:
        - Transaction
      summary: Get transaction by ID
      description: >-
        Retrieves a single transaction by ID. Optionally pass senderCustomerId
        or

        recipientCustomerId to set which customer perspective the role field

        reflects.
      operationId: getTransaction
      parameters:
        - in: path
          name: transactionId
          required: true
          schema:
            type: string
        - description: >-
            Sender-side customer context used with `recipientCustomerId` to
            choose the single customer perspective for `role`.
          in: query
          name: senderCustomerId
          required: false
          schema:
            type: string
        - description: >-
            Recipient-side customer context used with `senderCustomerId` to
            choose the single customer perspective for `role`.
          in: query
          name: recipientCustomerId
          required: false
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Transaction'
          description: The request has succeeded.
components:
  schemas:
    Transaction:
      description: >-
        A single movement of money from a source to a destination. Created by
        accepting a quote, or generated automatically by a deposit address,
        virtual account, or cash-in. Track its progress with status.
      properties:
        cashInId:
          type: string
        cashPickup:
          $ref: '#/components/schemas/CashPickup'
        completedAt:
          description: >-
            When the transaction reached a terminal completed state. Absent
            until completion; distinct from updatedAt.
          format: date-time
          type: string
        createdAt:
          type: string
          format: date-time
        depositAddressId:
          type: string
        depositInstructions:
          $ref: '#/components/schemas/TransactionDepositInstructions'
        destination:
          $ref: '#/components/schemas/TransactionDestination'
        error:
          $ref: '#/components/schemas/AsyncError'
        estimatedArrival:
          type: string
          format: date-time
        expiresAt:
          type: string
          format: date-time
        fixedAmountSide:
          enum:
            - source
            - destination
          type: string
        id:
          type: string
        metadata:
          type: object
          additionalProperties:
            type: string
        object:
          enum:
            - transaction
          type: string
        quoteId:
          type: string
        rail:
          description: >-
            Payment rail for this leg: e.g. "wire", "international_wire", "ach",
            "crypto". Lets clients label the rail without re-deriving it from
            other fields.
          type: string
        rates:
          $ref: '#/components/schemas/Rates'
        recipientCustomerId:
          description: >-
            Recipient customer when resolvable: internal dest wallet's owner, or
            the sender for cash/fiat rails. Absent for external blockchain
            destinations.
          type: string
        role:
          allOf:
            - $ref: '#/components/schemas/CustomerRole'
          description: >-
            Present only when the request supplies customer context; see
            CustomerRole.
        senderCustomerId:
          description: Sender customer (the quote owner). OMSX customer TypeID (cst_…).
          type: string
        source:
          $ref: '#/components/schemas/TransactionSource'
        sponsorGas:
          type: boolean
        sponsorGasCost:
          description: |-
            USD cost of gas absorbed by the developer when sponsoring gas.
            Always "0" in alpha - gas is sponsored. Spec § 4.1.
          type: string
        status:
          $ref: '#/components/schemas/TransactionStatus'
        subStatus:
          type: string
        type:
          $ref: '#/components/schemas/TransferType'
        updatedAt:
          type: string
          format: date-time
        virtualAccountId:
          type: string
      type: object
    CashPickup:
      description: >-
        Details for collecting a cash payout: the pickup code, amount, and
        location.
      properties:
        amount:
          type: string
        asset:
          type: string
        cashCode:
          type: string
        expiresAt:
          type: string
          format: date-time
        instructions:
          type: string
        location:
          $ref: '#/components/schemas/CashPickupLocation'
        phoneRequired:
          type: boolean
      type: object
    TransactionDepositInstructions:
      description: >-
        On-chain instructions for funding a transaction: the address, asset,
        network, and exact amount to send.
      properties:
        address:
          type: string
        asset:
          type: string
        exactAmount:
          type: string
        expiresAt:
          type: string
          format: date-time
        network:
          type: string
      type: object
    TransactionDestination:
      description: >-
        The destination side of a transaction: where funds are delivered, with
        the amounts and fees on that side.
      properties:
        amountGross:
          type: string
        amountNet:
          type: string
        asset:
          type: string
        bankDetails:
          type: object
          additionalProperties:
            type: string
        cash:
          $ref: '#/components/schemas/TransactionDestinationCash'
        externalAccountId:
          type: string
        feesDeducted:
          $ref: '#/components/schemas/FeesDeducted'
        network:
          type: string
        owner:
          $ref: '#/components/schemas/Owner'
        txHash:
          type: string
        wallet:
          $ref: '#/components/schemas/WalletTarget'
      type: object
    AsyncError:
      description: >-
        Details of an asynchronous failure, such as a transaction or webhook
        that failed after the initial request succeeded. Present only once a
        failure has occurred.
      properties:
        code:
          type: string
        message:
          type: string
        occurredAt:
          type: string
          format: date-time
        recoverable:
          type: boolean
        refund:
          $ref: '#/components/schemas/Refund'
      type: object
    Rates:
      description: Exchange and effective rates.
      properties:
        effectiveRate:
          description: All-in rate inclusive of all fees on both sides.
          type: string
        exchangeRate:
          description: Units of destination asset per 1 unit of source asset.
          type: string
        pair:
          description: Asset pair string, e.g. "usdc/usd".
          type: string
      required:
        - pair
        - exchangeRate
        - effectiveRate
      type: object
    CustomerRole:
      description: >-
        Role of the perspective customer (the one named in the path or filter)

        relative to a transaction. Emitted on customer-scoped list responses

        (`GET /customers/{id}/transactions` or `GET
        /transactions?senderCustomerId=…`

        / `…?recipientCustomerId=…`) and single-transaction responses with

        `GET /transactions/{id}?senderCustomerId=…` or

        `GET /transactions/{id}?recipientCustomerId=…`; absent when there is no
        single

        reference customer.
      enum:
        - sender
        - recipient
        - both
      type: string
    TransactionSource:
      description: >-
        The source side of a transaction: where funds are pulled from, with the
        amounts and fees on that side.
      properties:
        amountGross:
          type: string
        amountNet:
          type: string
        asset:
          type: string
        externalAccountId:
          type: string
        feesDeducted:
          $ref: '#/components/schemas/FeesDeducted'
        network:
          type: string
        owner:
          $ref: '#/components/schemas/Owner'
        txHash:
          type: string
        walletId:
          type: string
      type: object
    TransactionStatus:
      description: >-
        Lifecycle of a transaction. processing: funds in motion. completed:
        delivered. failed: terminal failure. cashPickupReady: a cash pickup code
        is ready to collect.
      enum:
        - processing
        - completed
        - failed
        - cashPickupReady
      type: string
    TransferType:
      description: >-
        Direction of value across rails: cryptoToCrypto, fiatToCrypto, or
        cryptoToFiat.
      enum:
        - cryptoToCrypto
        - fiatToCrypto
        - cryptoToFiat
      type: string
    CashPickupLocation:
      properties:
        address:
          type: string
        city:
          type: string
        coordinates:
          $ref: '#/components/schemas/CashLocationCoordinates'
        country:
          type: string
        name:
          type: string
        provider:
          type: string
        state:
          type: string
        zipCode:
          type: string
      type: object
    TransactionDestinationCash:
      properties:
        locationId:
          type: string
        locationReference:
          type: string
      type: object
    FeesDeducted:
      description: |-
        Per-side breakdown of fees deducted in-line from the transaction.
        End-of-month billable fees will be reported separately in the future
        (planned `feesInvoice` sibling). Denominated in that side's asset.
      properties:
        developer:
          description: |-
            Per-side aggregated developer fee total in this side's asset.
            Always "0" in alpha - alpha invariant, mirrors the gas line.
          type: string
        gas:
          type: string
        oms:
          type: string
        total:
          type: string
      required:
        - total
        - developer
        - oms
        - gas
      type: object
    Owner:
      description: >-
        The legal owner of a payment endpoint, either an individual or a
        business, with contact and identifying details.
      properties:
        address:
          $ref: '#/components/schemas/Address'
        dateOfBirth:
          format: date
          type: string
        email:
          type: string
        name:
          description: Full legal name or registered business name.
          type: string
        nationality:
          description: ISO 3166-1 alpha-2
          type: string
        phone:
          type: string
        taxId:
          description: Tax ID (CPF, CNPJ, etc.)
          type: string
        type:
          $ref: '#/components/schemas/OwnerType'
      type: object
    WalletTarget:
      description: Crypto delivery target. One or more identifiers may be present.
      properties:
        blockchainAddress:
          description: External on-chain address.
          type: string
        externalAccountId:
          description: Saved blockchain address (cpBcAddr_ prefix).
          type: string
        walletId:
          description: Internal OMS wallet (acc_ prefix).
          type: string
      type: object
    Refund:
      description: >-
        An automatic refund issued when a transaction fails after funds were
        pulled from the source.
      properties:
        amount:
          type: string
        asset:
          type: string
        destinationWalletId:
          type: string
        network:
          type: string
        status:
          $ref: '#/components/schemas/RefundStatus'
        txHash:
          type: string
      type: object
    CashLocationCoordinates:
      properties:
        latitude:
          format: double
          type: number
        longitude:
          format: double
          type: number
      required:
        - latitude
        - longitude
      type: object
    Address:
      description: A postal address. country is an ISO 3166-1 alpha-2 country code.
      properties:
        city:
          type: string
        country:
          description: ISO 3166-1 alpha-2
          type: string
        line1:
          type: string
        line2:
          type: string
        state:
          type: string
        zipCode:
          type: string
      type: object
    OwnerType:
      enum:
        - individual
        - business
      type: string
    RefundStatus:
      enum:
        - pending
        - completed
        - failed
      type: string
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: Token from POST /auth/token

````