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

# List Transactions

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

Retrieve a list of transactions for a specific 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:
- **Sender** sees a `TRANSFER` transaction with `transaction_action: TRANSFER`
- **Receiver** also sees the transfer in their transaction history
- Cross-entity transfers are supported

**AUTO_CONVERSION Response**
For AUTO_CONVERSION transactions, the response includes a `sub_transactions` array containing individual transaction steps, ordered as:
1. **DEPOSIT** - Initial fiat/crypto deposit
2. **CONVERSION** - Asset conversion (if applicable)
3. **WITHDRAWAL** - Final fiat/crypto withdrawal (if applicable)

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

**Pagination**
Two query parameter formats are supported:
- Flat format (recommended): `?page=1&size=10`
- Nested format: `?pagination=page=1&size=10`

## Path parameters

- `customer_id` string, required

## Query parameters

- `transaction_action` 'DEPOSIT' | 'WITHDRAWAL' | 'CONVERSION' | 'AUTO_CONVERSION' | 'TRANSFER' | 'REWARD'
- `transaction_id` string — Public transaction ID exposed by OpenAPI. Internally this maps to order IDs from the concrete transaction tables.
- `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
- `created_after` string
- `created_before` string
- `include_subaccounts` boolean
- `pagination` object, required — Pagination query parameters. Two query parameter formats are supported: - Flat format (recommended): `?page=1&size=10` - Nested format: `?pagination=page=1&size=10` Both formats are functionally equivalent. We recommend using the flat format.
  - `page` integer — Page number (starts from 1, default: 1)
  - `size` integer — Number of items per page (1-100, default: 10)

## Response `200`

Successfully retrieved transaction list

- TransactionListResponse — Response for transaction list
  - `list` TransactionResponse[], required
    - `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
  - `total` integer, nullable

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `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)
