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

# Get transaction by ID

> Read one direction-aware public transaction detail by transactionId. This canonical public detail route returns either the Outgoing Transaction or Incoming Transaction variant. For Step 4 incoming review cases, the incoming variant may additionally expose `reviewReason`, `decisionMode`, `recommendedAction`, `missingRequiredFields`, `actionAvailabilityHints`, and the bounded scenario detail fields `thresholdPolicyNote`, `sanctionsMatchSummary`, or `senderComplianceSummary`.



## OpenAPI

````yaml /openapi/blips-public-reference.yaml get /transactions/{transactionId}
openapi: 3.1.0
info:
  title: BLIPS Public Reference API
  version: '2026-04-08'
  description: >-
    Public OpenAPI 3.1 subset for the first BLIPS Mintlify API Reference and
    Playground release. This document is bound to the confirmed Public Test
    Backend at https://public-test.blips.network, includes only the approved
    first-release public endpoints, uses only internal `$ref` values, and
    excludes callback-only webhook documentation and operator-only surfaces.
servers:
  - url: https://public-test.blips.network
    description: >-
      Confirmed Public Test Backend ingress target for public BLIPS API
      Reference, Playground, and internet-testable Try It flows.
security:
  - BasicAuth: []
tags:
  - name: Platform Setup
    description: >-
      Bootstrap and platform configuration surfaces for establishing the public
      BLIPS integration context.
  - name: Sandbox API
    description: >-
      Sandbox-only externally displayed helper surfaces. These routes either
      adjust quote inputs or create incoming-payment review cases, but they
      always feed the existing quote or transaction families and never become
      second outward API families.
  - name: Tokens
    description: >-
      Platform-scoped API credential create, list, detail, and revoke
      operations.
  - name: Customers
    description: >-
      Customer onboarding, profile lifecycle, and PPV payment-address issuance
      surfaces.
  - name: Accounts
    description: >-
      Customer-bound internal-account and external-account surfaces kept in the
      first-layer public contract.
  - name: Same-Currency Transfers
    description: >-
      Same-currency receiver lookup plus incoming and outgoing transfer
      primitives.
  - name: Cross-Currency Transfers
    description: >-
      PPV-first receiver lookup, quote creation/readback, and quote execution
      for cross-currency flows.
  - name: Transactions
    description: Transaction readback plus bounded incoming-review decision operations.
  - name: Webhooks
    description: >-
      Webhook connectivity verification surface for the public BLIPS
      integration.
paths:
  /transactions/{transactionId}:
    get:
      tags:
        - Transactions
      summary: Get transaction by ID
      description: >-
        Read one direction-aware public transaction detail by transactionId.
        This canonical public detail route returns either the Outgoing
        Transaction or Incoming Transaction variant. For Step 4 incoming review
        cases, the incoming variant may additionally expose `reviewReason`,
        `decisionMode`, `recommendedAction`, `missingRequiredFields`,
        `actionAvailabilityHints`, and the bounded scenario detail fields
        `thresholdPolicyNote`, `sanctionsMatchSummary`, or
        `senderComplianceSummary`.
      operationId: getTransaction
      parameters:
        - name: transactionId
          in: path
          required: true
          schema:
            type: string
          description: >-
            Canonical public transaction identifier for this transaction detail
            route.
      responses:
        '200':
          description: >-
            Transaction detail returned. The 200 response is direction-aware and
            may be the Outgoing Transaction or Incoming Transaction variant.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionDetailMvpResponse'
              examples:
                outgoingTransaction:
                  summary: Outgoing Transaction
                  value:
                    transactionId: txn_demo_out_001
                    quoteId: Quote:quote_123
                    type: OUTGOING
                    status: COMPLETED
                    customerId: 00000000-0000-4000-8000-000000000001
                    platformCustomerId: partner_cust_001
                    createdAt: '2026-04-05T12:00:00Z'
                    updatedAt: '2026-04-05T12:03:00Z'
                    settledAt: '2026-04-05T12:03:00Z'
                    source:
                      accountId: InternalAccount:sender_usd_001
                      sourceType: INTERNAL_ACCOUNT
                    destination:
                      accountId: demo-customer@pay.example.blips
                      destinationType: PPV_ADDRESS
                    sentAmount:
                      currencyCode: USD
                      amountMinor: '10000'
                    exchangeRate: '54.23000000'
                    fees:
                      currencyCode: USD
                      amountMinor: '180'
                incomingTransaction:
                  summary: Incoming Transaction
                  value:
                    transactionId: txn_demo_in_001
                    quoteId: Quote:quote_123
                    type: INCOMING
                    status: PENDING
                    customerId: 00000000-0000-4000-8000-000000000002
                    platformCustomerId: partner_cust_002
                    createdAt: '2026-04-05T12:00:30Z'
                    updatedAt: '2026-04-05T12:01:00Z'
                    settledAt: null
                    destination:
                      accountId: ExternalAccount:receiver_php_001
                      destinationType: EXTERNAL_ACCOUNT
                    receivedAmount:
                      currencyCode: PHP
                      amountMinor: '542300'
                    exchangeRate: '54.23000000'
                    fees:
                      currencyCode: USD
                      amountMinor: '180'
                incomingReviewCounterpartyInfoIncomplete:
                  summary: Incoming Review Transaction - Counterparty Info Incomplete
                  value:
                    transactionId: txn_step4_review_001
                    quoteId: sandbox_incoming_sim_txn_step4_review_001
                    type: INCOMING
                    status: PENDING
                    customerId: cust_123
                    platformCustomerId: null
                    createdAt: '2026-04-12T10:32:00Z'
                    updatedAt: '2026-04-12T10:32:00Z'
                    settledAt: null
                    destination:
                      accountId: cust_123
                      destinationType: EXTERNAL_ACCOUNT
                    receivedAmount:
                      currencyCode: USD
                      amountMinor: '260000'
                    reviewReason: counterparty_info_incomplete
                    decisionMode: manual_review_required
                    recommendedAction: manual_review
                    missingRequiredFields:
                      - senderFullLegalName
                      - senderCountryCode
                      - senderDateOfBirthOrRegistrationId
                      - purposeOfPayment
                    actionAvailabilityHints:
                      approveAllowed: true
                      rejectAllowed: true
                      manualReviewRequired: true
                    thresholdPolicyNote: >-
                      Current threshold/policy requires sender identity and
                      purpose of payment before approval.
                incomingReviewSanctionsHit:
                  summary: Incoming Review Transaction - Sanctions Hit
                  value:
                    transactionId: txn_step4_review_002
                    quoteId: sandbox_incoming_sim_txn_step4_review_002
                    type: INCOMING
                    status: PENDING
                    customerId: cust_123
                    platformCustomerId: null
                    createdAt: '2026-04-12T10:30:00Z'
                    updatedAt: '2026-04-12T10:30:00Z'
                    settledAt: null
                    destination:
                      accountId: cust_123
                      destinationType: EXTERNAL_ACCOUNT
                    receivedAmount:
                      currencyCode: USD
                      amountMinor: '200000'
                    reviewReason: sanctions_hit
                    decisionMode: reject_only
                    recommendedAction: reject
                    actionAvailabilityHints:
                      approveAllowed: false
                      rejectAllowed: true
                      manualReviewRequired: false
                      approveBlockedReason: reject_only
                    sanctionsMatchSummary:
                      matchedName: Sandbox screened sender
                      matchedListName: Sandbox sanctions watchlist
                      confidenceLabel: high
        '400':
          description: Invalid transactionId path value.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionDetailBadRequestResponse'
              examples:
                invalidTransactionId:
                  value:
                    status: 400
                    code: INVALID_REQUEST
                    message: Invalid transactionId path value
                    details:
                      transactionId: must be a non-empty transaction identifier
        '401':
          description: Invalid or missing API credentials.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionDetailUnauthorizedResponse'
              examples:
                unauthorized:
                  value:
                    status: 401
                    code: UNAUTHORIZED
                    message: Invalid or missing API credentials
                    details: {}
        '404':
          description: Transaction not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionDetailNotFoundResponse'
              examples:
                notFound:
                  value:
                    status: 404
                    code: TRANSACTION_NOT_FOUND
                    message: Transaction not found
                    details: {}
        '500':
          description: Internal service error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionDetailInternalErrorResponse'
              examples:
                internalError:
                  value:
                    status: 500
                    code: INTERNAL_ERROR
                    message: Internal service error
                    details: {}
      security:
        - BasicAuth: []
components:
  schemas:
    TransactionDetailMvpResponse:
      oneOf:
        - $ref: '#/components/schemas/TransactionDetailOutgoingMvpResponse'
        - $ref: '#/components/schemas/TransactionDetailIncomingMvpResponse'
      description: >-
        Direction-aware public transaction detail response. The 200 response is
        either the Outgoing Transaction or Incoming Transaction variant.
    TransactionDetailBadRequestResponse:
      type: object
      description: >-
        Dedicated bad-request response contract for the public transaction
        detail route.
      properties:
        status:
          type: integer
          description: HTTP status code for this error response.
        code:
          type: string
          enum:
            - INVALID_REQUEST
          description: >-
            Stable public error code for this invalid transaction-detail
            request.
        message:
          type: string
          description: Human-readable invalid-request summary.
        details:
          type: object
          additionalProperties: true
          description: Optional structured invalid-request details.
      required:
        - status
        - code
        - message
        - details
      additionalProperties: false
    TransactionDetailUnauthorizedResponse:
      type: object
      description: >-
        Dedicated unauthorized response contract for the public transaction
        detail route.
      properties:
        status:
          type: integer
          description: HTTP status code for this error response.
        code:
          type: string
          enum:
            - UNAUTHORIZED
          description: >-
            Stable public error code for this unauthorized transaction-detail
            request.
        message:
          type: string
          description: Human-readable unauthorized summary.
        details:
          type: object
          additionalProperties: true
          description: Optional structured unauthorized details.
      required:
        - status
        - code
        - message
        - details
      additionalProperties: false
    TransactionDetailNotFoundResponse:
      type: object
      description: >-
        Dedicated not-found response contract for the public transaction detail
        route.
      properties:
        status:
          type: integer
          description: HTTP status code for this error response.
        code:
          type: string
          enum:
            - TRANSACTION_NOT_FOUND
          description: Stable public error code for a missing transaction detail.
        message:
          type: string
          description: Human-readable not-found summary.
        details:
          type: object
          additionalProperties: true
          description: Optional structured not-found details.
      required:
        - status
        - code
        - message
        - details
      additionalProperties: false
    TransactionDetailInternalErrorResponse:
      type: object
      description: >-
        Dedicated internal-error response contract for the public transaction
        detail route.
      properties:
        status:
          type: integer
          description: HTTP status code for this error response.
        code:
          type: string
          enum:
            - INTERNAL_ERROR
          description: Stable public error code for a transaction-detail internal failure.
        message:
          type: string
          description: Human-readable internal-error summary.
        details:
          type: object
          additionalProperties: true
          description: Optional structured internal-error details.
      required:
        - status
        - code
        - message
        - details
      additionalProperties: false
    TransactionDetailOutgoingMvpResponse:
      type: object
      description: >-
        Outgoing Transaction public detail variant. sentAmount is the main
        amount on this variant.
      properties:
        transactionId:
          type: string
          description: >-
            Canonical public transaction identifier for this transaction detail
            response.
        quoteId:
          type:
            - string
            - 'null'
          description: Quote identifier associated with the transaction when available.
        type:
          type: string
          enum:
            - OUTGOING
          description: Direction of this transaction.
        status:
          type: string
          enum:
            - CREATED
            - PENDING
            - PROCESSING
            - COMPLETED
            - REJECTED
            - FAILED
            - REFUNDED
            - EXPIRED
          description: Current transaction lifecycle status.
        customerId:
          type:
            - string
            - 'null'
          description: >-
            System-generated BLIPS customer identifier associated with this
            transaction when available.
        platformCustomerId:
          type:
            - string
            - 'null'
          description: >-
            Platform-side customer identifier associated with this transaction
            when available.
        createdAt:
          type: string
          format: date-time
          description: Transaction creation timestamp.
        updatedAt:
          type: string
          format: date-time
          description: Last update timestamp.
        settledAt:
          type:
            - string
            - 'null'
          format: date-time
          description: >-
            Settlement timestamp when the transaction has reached a settled
            terminal state.
        exchangeRate:
          type: string
          description: Applied exchange rate when available.
        fees:
          $ref: '#/components/schemas/MoneyAmount'
          description: Total fees charged for the transaction when available.
        source:
          $ref: '#/components/schemas/TransactionDetailOutgoingMvpSource'
          description: Bounded source account detail for the outgoing transaction.
        destination:
          $ref: '#/components/schemas/TransactionDetailMvpDestination'
          description: Bounded destination detail for the outgoing transaction.
        sentAmount:
          $ref: '#/components/schemas/MoneyAmount'
          description: Main sent amount for the outgoing transaction.
      required:
        - transactionId
        - quoteId
        - type
        - status
        - customerId
        - platformCustomerId
        - createdAt
        - updatedAt
        - settledAt
        - source
        - destination
        - sentAmount
      additionalProperties: false
    TransactionDetailIncomingMvpResponse:
      type: object
      description: >-
        Incoming Transaction public detail variant. receivedAmount is the main
        amount on this variant.
      properties:
        transactionId:
          type: string
          description: >-
            Canonical public transaction identifier for this transaction detail
            response.
        quoteId:
          type:
            - string
            - 'null'
          description: Quote identifier associated with the transaction when available.
        type:
          type: string
          enum:
            - INCOMING
          description: Direction of this transaction.
        status:
          type: string
          enum:
            - CREATED
            - PENDING
            - PROCESSING
            - COMPLETED
            - REJECTED
            - FAILED
            - REFUNDED
            - EXPIRED
          description: Current transaction lifecycle status.
        customerId:
          type:
            - string
            - 'null'
          description: >-
            System-generated BLIPS customer identifier associated with this
            transaction when available.
        platformCustomerId:
          type:
            - string
            - 'null'
          description: >-
            Platform-side customer identifier associated with this transaction
            when available.
        createdAt:
          type: string
          format: date-time
          description: Transaction creation timestamp.
        updatedAt:
          type: string
          format: date-time
          description: Last update timestamp.
        settledAt:
          type:
            - string
            - 'null'
          format: date-time
          description: >-
            Settlement timestamp when the transaction has reached a settled
            terminal state.
        exchangeRate:
          type: string
          description: Applied exchange rate when available.
        fees:
          $ref: '#/components/schemas/MoneyAmount'
          description: Total fees charged for the transaction when available.
        destination:
          $ref: '#/components/schemas/TransactionDetailMvpDestination'
          description: Bounded destination detail for the incoming transaction.
        receivedAmount:
          $ref: '#/components/schemas/MoneyAmount'
          description: Main received amount for the incoming transaction.
        reviewReason:
          type: string
          description: >-
            Step 4 incoming-review reason when this transaction is in the review
            lane.
        decisionMode:
          $ref: '#/components/schemas/TransactionDecisionMode'
        recommendedAction:
          $ref: '#/components/schemas/TransactionRecommendedAction'
        missingRequiredFields:
          type: array
          description: >-
            Frozen missing-field list for `counterparty_info_incomplete` review
            cases.
          items:
            type: string
        actionAvailabilityHints:
          $ref: '#/components/schemas/TransactionActionAvailabilityHints'
        thresholdPolicyNote:
          type: string
          description: >-
            Bounded threshold/policy note surfaced for
            `counterparty_info_incomplete` review cases.
        sanctionsMatchSummary:
          $ref: '#/components/schemas/TransactionSanctionsMatchSummary'
        senderComplianceSummary:
          $ref: '#/components/schemas/TransactionSenderComplianceSummary'
      required:
        - transactionId
        - quoteId
        - type
        - status
        - customerId
        - platformCustomerId
        - createdAt
        - updatedAt
        - settledAt
        - destination
        - receivedAmount
      additionalProperties: false
    MoneyAmount:
      type: object
      properties:
        currencyCode:
          type: string
          description: ISO 4217 currency code.
        amountMinor:
          type: string
          description: Amount in minor units for that currency.
      required:
        - currencyCode
        - amountMinor
      additionalProperties: false
    TransactionDetailOutgoingMvpSource:
      type: object
      properties:
        accountId:
          type:
            - string
            - 'null'
          description: >-
            Internal account identifier for the transaction source when
            available.
        sourceType:
          type: string
          enum:
            - INTERNAL_ACCOUNT
          description: Public source type for this transaction detail route.
      required:
        - accountId
        - sourceType
      additionalProperties: false
    TransactionDetailMvpDestination:
      type: object
      properties:
        accountId:
          type:
            - string
            - 'null'
          description: >-
            Bound external account identifier or PPV address for the transaction
            destination when available.
        destinationType:
          type: string
          enum:
            - PPV_ADDRESS
            - EXTERNAL_ACCOUNT
          description: Public destination type for this transaction detail route.
      required:
        - accountId
        - destinationType
      additionalProperties: false
    TransactionDecisionMode:
      type: string
      enum:
        - reject_only
        - manual_review_required
      description: >-
        Decision mode surfaced for Step 4 incoming-review handling on the
        existing transaction lane.
    TransactionRecommendedAction:
      type: string
      enum:
        - reject
        - manual_review
      description: Recommended first action surfaced for Step 4 incoming-review handling.
    TransactionActionAvailabilityHints:
      type: object
      properties:
        approveAllowed:
          type: boolean
          description: >-
            Whether the existing approve route is currently available for this
            transaction state.
        rejectAllowed:
          type: boolean
          description: >-
            Whether the existing reject route is currently available for this
            transaction state.
        manualReviewRequired:
          type: boolean
          description: >-
            Whether the scenario requires manual review before the operator
            should approve in the demo flow.
        approveBlockedReason:
          $ref: '#/components/schemas/TransactionDecisionMode'
      required:
        - approveAllowed
        - rejectAllowed
        - manualReviewRequired
      additionalProperties: false
      description: >-
        Bounded action-state hints for incoming review cases on the existing
        transaction lane.
    TransactionSanctionsMatchSummary:
      type: object
      properties:
        matchedName:
          type: string
        matchedListName:
          type: string
        confidenceLabel:
          type: string
          enum:
            - high
      required:
        - matchedName
        - matchedListName
        - confidenceLabel
      additionalProperties: false
      description: Bounded sanctions summary surfaced for `sanctions_hit` review cases.
    TransactionSenderComplianceSummary:
      type: object
      properties:
        originatingInstitutionName:
          type: string
        senderComplianceStatus:
          type: string
          enum:
            - not_approved
      required:
        - originatingInstitutionName
        - senderComplianceStatus
      additionalProperties: false
      description: >-
        Bounded sender-compliance summary surfaced for `sender_kyc_not_approved`
        review cases.
  securitySchemes:
    BasicAuth:
      type: http
      scheme: basic
      description: >-
        Integration-key Basic Auth (`clientId:clientSecret`) as documented in
        docs/public/AUTHENTICATION.md.

````