---
title: "Get Transaction"
method: GET
path: "/v1/customers/{customer_id}/transactions/{transaction_id}"
tags: ["Transactions"]
---

# Get Transaction

`GET /v1/customers/{customer_id}/transactions/{transaction_id}`

Retrieve a specific transaction by ID for a customer.

**Transaction Types**
- `DEPOSIT`: Fiat or crypto deposit
- `WITHDRAWAL`: Fiat or crypto withdrawal
- `CONVERSION`: Asset conversion (buy/sell/convert)
- `AUTO_CONVERSION`: Auto-conversion rule execution
- `TRANSFER`: Internal transfer between customers

**TRANSFER Response**
For TRANSFER transactions:
- `transaction_action`: `TRANSFER`
- `amount` / `asset`: Transfer amount and asset
- No transaction fee (transfers are fee-free)
- Both sender and receiver can query their respective transaction records

**AUTO_CONVERSION Response**
For AUTO_CONVERSION transactions, the response includes:
- Main transaction metadata (ID, status, source/destination assets)
- `sub_transactions` array with individual steps:
- `transaction_id`: Sub-transaction ID
- `transaction_action`: DEPOSIT | CONVERSION | WITHDRAWAL
- `status`: Current status of the sub-transaction
- `amount` / `asset`: Transaction amount and asset
- `to_amount` / `to_asset`: Target amount and asset (for conversion)
- `created_at`: Timestamp

**Note**:
For SWIFT withdrawals, UETR is populated in the reference field.

## Path parameters

- `customer_id` string, required
- `transaction_id` string, required

## Response `200`

Successfully retrieved transaction

- TransactionResponse — Common transaction data fields shared between TransactionResponse and SubTransactionResponse This structure avoids field duplication and prevents OpenAPI schema circular reference issues
  - `customer_id` string, required — Portfolio ID — also exposed as `customer_id` in OpenAPI. Identifies one individual application / portfolio row within an entity.
  - `account_id` string, nullable
  - `recipient_id` string, nullable — Recipient ID for third-party payouts. Present only when this transaction targets a recipient (cpid is non-empty); absent for self-withdrawals and non-withdrawal transactions.
  - `transaction_id` string, required — Unique transaction identifier
  - `idempotency_key` string, required — HTTP `Idempotency-Key` header value. Stricter than other IDs: ≤64 ASCII chars per the common REST API convention.
  - `transaction_action` 'DEPOSIT' | 'WITHDRAWAL' | 'CONVERSION' | 'AUTO_CONVERSION' | 'TRANSFER' | 'REWARD', required
  - `transaction_direction` 'FIAT_IN' | 'FIAT_OUT' | 'CRYPTO_IN' | 'CRYPTO_OUT' | 'BUY' | 'SELL' | 'CONVERT' | 'AUTO_CONVERSION' | 'TRANSFER_IN' | 'TRANSFER_OUT' | 'REWARD_IN' | 'REWARD_OUT', required
  - `amount` string, required — Transaction amount
  - `asset` string — - Stablecoin assets: USDC, USDT, PYUSD, RLUSD, USDG, USDP, EURC, MXNB, 1USD(1USD/USDC conversion only, deposit/withdrawal not supported) - Digital assets: BTC - Fiat currencies: USD
  - `network` string
  - `transaction_fee` FeeMeta, required
    - `value` string, required — Fee amount
    - `asset` string, required — - Stablecoin assets: USDC, USDT, PYUSD, RLUSD, USDG, USDP, EURC, MXNB, 1USD(1USD/USDC conversion only, deposit/withdrawal not supported) - Digital assets: BTC - Fiat currencies: USD
  - `platform_fee` FeeMeta, required
    - `value` string, required — Fee amount
    - `asset` string, required — - Stablecoin assets: USDC, USDT, PYUSD, RLUSD, USDG, USDP, EURC, MXNB, 1USD(1USD/USDC conversion only, deposit/withdrawal not supported) - Digital assets: BTC - Fiat currencies: USD
  - `partner_fee` FeeMeta, required
    - `value` string, required — Fee amount
    - `asset` string, required — - Stablecoin assets: USDC, USDT, PYUSD, RLUSD, USDG, USDP, EURC, MXNB, 1USD(1USD/USDC conversion only, deposit/withdrawal not supported) - Digital assets: BTC - Fiat currencies: USD
  - `source` TransactionSource, required
    - `wallet_address` string, nullable — Wallet address for crypto withdrawals Required for crypto asset withdrawals (e.g., USDC, USDT). Cannot be provided together with external_account_id. Examples - **Wallet Address** `0x71a6c6be0be5f28ef4ea7541749d90d9c66fec7d`
    - `external_account_id` string, nullable — External account ID for fiat withdrawals Required for fiat currency withdrawals (e.g., USD, EUR). Identifies the external bank account used for the transfer. Cannot be provided together with wallet_address. Examples - **External Account ID** `ffb9e832-8e64-11f0-b308-2eaa4f6974f2`
    - `amount` string, nullable — Source amount
    - `asset` string — - Stablecoin assets: USDC, USDT, PYUSD, RLUSD, USDG, USDP, EURC, MXNB, 1USD(1USD/USDC conversion only, deposit/withdrawal not supported) - Digital assets: BTC - Fiat currencies: USD
    - `network` string
    - `bank_name` string, nullable — Bank name of the source account
    - `bank_account_name` string, nullable — Account holder name
  - `destination` TransactionDestination, required
    - `wallet_address` string, nullable — Wallet address for crypto withdrawals Required for crypto asset withdrawals (e.g., USDC, USDT). Cannot be provided together with external_account_id. Examples - **Wallet Address** `0x71a6c6be0be5f28ef4ea7541749d90d9c66fec7d`
    - `external_account_id` string, nullable — External account ID for fiat withdrawals Required for fiat currency withdrawals (e.g., USD, EUR). Identifies the external bank account used for the transfer. Cannot be provided together with wallet_address. Examples - **External Account ID** `ffb9e832-8e64-11f0-b308-2eaa4f6974f2`
    - `amount` string, nullable — Destination amount (net amount actually received after transaction_fee)
    - `asset` string — - Stablecoin assets: USDC, USDT, PYUSD, RLUSD, USDG, USDP, EURC, MXNB, 1USD(1USD/USDC conversion only, deposit/withdrawal not supported) - Digital assets: BTC - Fiat currencies: USD
    - `network` string
    - `bank_name` string, nullable — Bank name of the destination account
    - `bank_account_name` string, nullable — Account holder name
    - `reference` string, nullable — Transaction reference: on-chain tx hash (crypto) or UETR (fiat)
  - `status` 'PENDING' | 'COMPLETED' | 'FAILED' | 'REVERSED' | 'RETURNED', required
  - `amount_type` 'SEND_AMOUNT' | 'RECEIVE_AMOUNT'
  - `memorandum` string, nullable — A string representing the message about the transaction.
  - `created_at` string, required
  - `modified_at` string, required
  - `sub_transactions` SubTransactionResponse[], nullable — Sub-transactions (only for AUTO_CONVERSION action type) Contains individual transaction details for each step: deposit -> conversion -> withdrawal
    - `customer_id` string, required — Portfolio ID — also exposed as `customer_id` in OpenAPI. Identifies one individual application / portfolio row within an entity.
    - `account_id` string, nullable
    - `recipient_id` string, nullable — Recipient ID for third-party payouts. Present only when this transaction targets a recipient (cpid is non-empty); absent for self-withdrawals and non-withdrawal transactions.
    - `transaction_id` string, required — Unique transaction identifier
    - `idempotency_key` string, required — HTTP `Idempotency-Key` header value. Stricter than other IDs: ≤64 ASCII chars per the common REST API convention.
    - `transaction_action` 'DEPOSIT' | 'WITHDRAWAL' | 'CONVERSION' | 'AUTO_CONVERSION' | 'TRANSFER' | 'REWARD', required
    - `transaction_direction` 'FIAT_IN' | 'FIAT_OUT' | 'CRYPTO_IN' | 'CRYPTO_OUT' | 'BUY' | 'SELL' | 'CONVERT' | 'AUTO_CONVERSION' | 'TRANSFER_IN' | 'TRANSFER_OUT' | 'REWARD_IN' | 'REWARD_OUT', required
    - `amount` string, required — Transaction amount
    - `asset` string — - Stablecoin assets: USDC, USDT, PYUSD, RLUSD, USDG, USDP, EURC, MXNB, 1USD(1USD/USDC conversion only, deposit/withdrawal not supported) - Digital assets: BTC - Fiat currencies: USD
    - `network` string
    - `transaction_fee` FeeMeta, required
      - `value` string, required — Fee amount
      - `asset` string, required — - Stablecoin assets: USDC, USDT, PYUSD, RLUSD, USDG, USDP, EURC, MXNB, 1USD(1USD/USDC conversion only, deposit/withdrawal not supported) - Digital assets: BTC - Fiat currencies: USD
    - `platform_fee` FeeMeta, required
      - `value` string, required — Fee amount
      - `asset` string, required — - Stablecoin assets: USDC, USDT, PYUSD, RLUSD, USDG, USDP, EURC, MXNB, 1USD(1USD/USDC conversion only, deposit/withdrawal not supported) - Digital assets: BTC - Fiat currencies: USD
    - `partner_fee` FeeMeta, required
      - `value` string, required — Fee amount
      - `asset` string, required — - Stablecoin assets: USDC, USDT, PYUSD, RLUSD, USDG, USDP, EURC, MXNB, 1USD(1USD/USDC conversion only, deposit/withdrawal not supported) - Digital assets: BTC - Fiat currencies: USD
    - `source` TransactionSource, required
      - `wallet_address` string, nullable — Wallet address for crypto withdrawals Required for crypto asset withdrawals (e.g., USDC, USDT). Cannot be provided together with external_account_id. Examples - **Wallet Address** `0x71a6c6be0be5f28ef4ea7541749d90d9c66fec7d`
      - `external_account_id` string, nullable — External account ID for fiat withdrawals Required for fiat currency withdrawals (e.g., USD, EUR). Identifies the external bank account used for the transfer. Cannot be provided together with wallet_address. Examples - **External Account ID** `ffb9e832-8e64-11f0-b308-2eaa4f6974f2`
      - `amount` string, nullable — Source amount
      - `asset` string — - Stablecoin assets: USDC, USDT, PYUSD, RLUSD, USDG, USDP, EURC, MXNB, 1USD(1USD/USDC conversion only, deposit/withdrawal not supported) - Digital assets: BTC - Fiat currencies: USD
      - `network` string
      - `bank_name` string, nullable — Bank name of the source account
      - `bank_account_name` string, nullable — Account holder name
    - `destination` TransactionDestination, required
      - `wallet_address` string, nullable — Wallet address for crypto withdrawals Required for crypto asset withdrawals (e.g., USDC, USDT). Cannot be provided together with external_account_id. Examples - **Wallet Address** `0x71a6c6be0be5f28ef4ea7541749d90d9c66fec7d`
      - `external_account_id` string, nullable — External account ID for fiat withdrawals Required for fiat currency withdrawals (e.g., USD, EUR). Identifies the external bank account used for the transfer. Cannot be provided together with wallet_address. Examples - **External Account ID** `ffb9e832-8e64-11f0-b308-2eaa4f6974f2`
      - `amount` string, nullable — Destination amount (net amount actually received after transaction_fee)
      - `asset` string — - Stablecoin assets: USDC, USDT, PYUSD, RLUSD, USDG, USDP, EURC, MXNB, 1USD(1USD/USDC conversion only, deposit/withdrawal not supported) - Digital assets: BTC - Fiat currencies: USD
      - `network` string
      - `bank_name` string, nullable — Bank name of the destination account
      - `bank_account_name` string, nullable — Account holder name
      - `reference` string, nullable — Transaction reference: on-chain tx hash (crypto) or UETR (fiat)
    - `status` 'PENDING' | 'COMPLETED' | 'FAILED' | 'REVERSED' | 'RETURNED', required
    - `amount_type` 'SEND_AMOUNT' | 'RECEIVE_AMOUNT'
    - `memorandum` string, nullable — A string representing the message about the transaction.
    - `created_at` string, required
    - `modified_at` string, required

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `404` — Not Found
- `405` — Method Not Allowed
- `500` — Internal Server Error

---

[API](https://skmtc.net/1money/apis/1money-openapi.md) · [All operations](https://skmtc.net/1money/apis/1money-openapi/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/1money/1money-openapi/revisions/aa2718d28cb5/schema)
