---
title: "GET /v1/customers/{customer_id}/transactions"
method: GET
path: "/v1/customers/{customer_id}/transactions"
tags: ["crate::transaction::history::controller::openapi::transactions"]
---

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

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

## Request

- Base URL: `https://api.1money.com`
- URL: `https://api.1money.com/v1/customers/{customer_id}/transactions`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/1money/apis/1money-openapi/docs/v1/customers/:customer_id/transactions/get.ts> (a function with typed inputs; its response is checked against the schema)

## 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, ETH, SOL - Fiat currencies: USD, MXN
- `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, ETH, SOL - Fiat currencies: USD, MXN
    - `network` string: Public network identifier for bank, blockchain and internal transactions. Allowed values: - Bank: `US_ACH`, `US_FEDWIRE`, `US_RTP`, `US_FEDNOW`, `SWIFT`, `CUBIX`, `SPEI`, `PIX_TRANSFER`, `LOCAL_BANK_TRANSFER`, `CHATS`, `FPS`, `SEPA`, `FASTER_PAYMENT`, `UAEFTS`, `UPI`, `EREBOR_RAIL` - Blockchain: `ETHEREUM`, `POLYGON`, `ARBITRUM`, `AVALANCHE`, `BASE`, `BNBCHAIN`, `SOLANA`, `TRON`, `ONE_MONEY`, `BITCOIN` - Internal: `INTERNAL` Availability depends on the asset and customer account configuration.
    - `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, ETH, SOL - Fiat currencies: USD, MXN
    - `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, ETH, SOL - Fiat currencies: USD, MXN
    - `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, ETH, SOL - Fiat currencies: USD, MXN
    - `source` TransactionSource, required
      - `wallet_address` string, nullable: Wallet address for a crypto transaction. For withdrawal requests, this is the external destination wallet and cannot be provided together with `external_account_id`. Transaction responses expose the actual on-chain origin in `source.wallet_address` and the receiving wallet in `destination.wallet_address`. Examples - **Wallet Address** `0x71a6c6be0be5f28ef4ea7541749d90d9c66fec7d`
      - `external_account_id` string, nullable: External account ID for fiat withdrawals Required for fiat currency withdrawals (e.g., USD, MXN). 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, ETH, SOL - Fiat currencies: USD, MXN
      - `network` string: Public network identifier for bank, blockchain and internal transactions. Allowed values: - Bank: `US_ACH`, `US_FEDWIRE`, `US_RTP`, `US_FEDNOW`, `SWIFT`, `CUBIX`, `SPEI`, `PIX_TRANSFER`, `LOCAL_BANK_TRANSFER`, `CHATS`, `FPS`, `SEPA`, `FASTER_PAYMENT`, `UAEFTS`, `UPI`, `EREBOR_RAIL` - Blockchain: `ETHEREUM`, `POLYGON`, `ARBITRUM`, `AVALANCHE`, `BASE`, `BNBCHAIN`, `SOLANA`, `TRON`, `ONE_MONEY`, `BITCOIN` - Internal: `INTERNAL` Availability depends on the asset and customer account configuration.
      - `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 a crypto transaction. For withdrawal requests, this is the external destination wallet and cannot be provided together with `external_account_id`. Transaction responses expose the actual on-chain origin in `source.wallet_address` and the receiving wallet in `destination.wallet_address`. Examples - **Wallet Address** `0x71a6c6be0be5f28ef4ea7541749d90d9c66fec7d`
      - `external_account_id` string, nullable: External account ID for fiat withdrawals Required for fiat currency withdrawals (e.g., USD, MXN). 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, ETH, SOL - Fiat currencies: USD, MXN
      - `network` string: Public network identifier for bank, blockchain and internal transactions. Allowed values: - Bank: `US_ACH`, `US_FEDWIRE`, `US_RTP`, `US_FEDNOW`, `SWIFT`, `CUBIX`, `SPEI`, `PIX_TRANSFER`, `LOCAL_BANK_TRANSFER`, `CHATS`, `FPS`, `SEPA`, `FASTER_PAYMENT`, `UAEFTS`, `UPI`, `EREBOR_RAIL` - Blockchain: `ETHEREUM`, `POLYGON`, `ARBITRUM`, `AVALANCHE`, `BASE`, `BNBCHAIN`, `SOLANA`, `TRON`, `ONE_MONEY`, `BITCOIN` - Internal: `INTERNAL` Availability depends on the asset and customer account configuration.
      - `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)
    - `receiving_virtual_account` ReceivingVirtualAccount: The receiving identity frozen on the deposit, with current customer metadata.
      - `virtual_account_id` string, required
      - `nickname` string, required
      - `external_id` string, required
    - `status` 'PENDING' | 'COMPLETED' | 'FAILED' | 'REVERSED' | 'RETURNED' | 'MICRO_DEPOSIT' | 'MICRO_DEPOSIT_REVERSED', required
    - `action_required` ActionRequired
      - `type` string, required
      - `case_id` string, required: RFI case business ID.
      - `action` string, required
    - `amount_type` 'SEND_AMOUNT' | 'RECEIVE_AMOUNT'
    - `purpose_code` string, nullable: Purpose code for a fiat withdrawal.
    - `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, ETH, SOL - Fiat currencies: USD, MXN
      - `network` string: Public network identifier for bank, blockchain and internal transactions. Allowed values: - Bank: `US_ACH`, `US_FEDWIRE`, `US_RTP`, `US_FEDNOW`, `SWIFT`, `CUBIX`, `SPEI`, `PIX_TRANSFER`, `LOCAL_BANK_TRANSFER`, `CHATS`, `FPS`, `SEPA`, `FASTER_PAYMENT`, `UAEFTS`, `UPI`, `EREBOR_RAIL` - Blockchain: `ETHEREUM`, `POLYGON`, `ARBITRUM`, `AVALANCHE`, `BASE`, `BNBCHAIN`, `SOLANA`, `TRON`, `ONE_MONEY`, `BITCOIN` - Internal: `INTERNAL` Availability depends on the asset and customer account configuration.
      - `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, ETH, SOL - Fiat currencies: USD, MXN
      - `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, ETH, SOL - Fiat currencies: USD, MXN
      - `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, ETH, SOL - Fiat currencies: USD, MXN
      - `source` TransactionSource, required
        - `wallet_address` string, nullable: Wallet address for a crypto transaction. For withdrawal requests, this is the external destination wallet and cannot be provided together with `external_account_id`. Transaction responses expose the actual on-chain origin in `source.wallet_address` and the receiving wallet in `destination.wallet_address`. Examples - **Wallet Address** `0x71a6c6be0be5f28ef4ea7541749d90d9c66fec7d`
        - `external_account_id` string, nullable: External account ID for fiat withdrawals Required for fiat currency withdrawals (e.g., USD, MXN). 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, ETH, SOL - Fiat currencies: USD, MXN
        - `network` string: Public network identifier for bank, blockchain and internal transactions. Allowed values: - Bank: `US_ACH`, `US_FEDWIRE`, `US_RTP`, `US_FEDNOW`, `SWIFT`, `CUBIX`, `SPEI`, `PIX_TRANSFER`, `LOCAL_BANK_TRANSFER`, `CHATS`, `FPS`, `SEPA`, `FASTER_PAYMENT`, `UAEFTS`, `UPI`, `EREBOR_RAIL` - Blockchain: `ETHEREUM`, `POLYGON`, `ARBITRUM`, `AVALANCHE`, `BASE`, `BNBCHAIN`, `SOLANA`, `TRON`, `ONE_MONEY`, `BITCOIN` - Internal: `INTERNAL` Availability depends on the asset and customer account configuration.
        - `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 a crypto transaction. For withdrawal requests, this is the external destination wallet and cannot be provided together with `external_account_id`. Transaction responses expose the actual on-chain origin in `source.wallet_address` and the receiving wallet in `destination.wallet_address`. Examples - **Wallet Address** `0x71a6c6be0be5f28ef4ea7541749d90d9c66fec7d`
        - `external_account_id` string, nullable: External account ID for fiat withdrawals Required for fiat currency withdrawals (e.g., USD, MXN). 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, ETH, SOL - Fiat currencies: USD, MXN
        - `network` string: Public network identifier for bank, blockchain and internal transactions. Allowed values: - Bank: `US_ACH`, `US_FEDWIRE`, `US_RTP`, `US_FEDNOW`, `SWIFT`, `CUBIX`, `SPEI`, `PIX_TRANSFER`, `LOCAL_BANK_TRANSFER`, `CHATS`, `FPS`, `SEPA`, `FASTER_PAYMENT`, `UAEFTS`, `UPI`, `EREBOR_RAIL` - Blockchain: `ETHEREUM`, `POLYGON`, `ARBITRUM`, `AVALANCHE`, `BASE`, `BNBCHAIN`, `SOLANA`, `TRON`, `ONE_MONEY`, `BITCOIN` - Internal: `INTERNAL` Availability depends on the asset and customer account configuration.
        - `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)
      - `receiving_virtual_account` ReceivingVirtualAccount: The receiving identity frozen on the deposit, with current customer metadata.
        - `virtual_account_id` string, required
        - `nickname` string, required
        - `external_id` string, required
      - `status` 'PENDING' | 'COMPLETED' | 'FAILED' | 'REVERSED' | 'RETURNED' | 'MICRO_DEPOSIT' | 'MICRO_DEPOSIT_REVERSED', required
      - `action_required` ActionRequired
        - `type` string, required
        - `case_id` string, required: RFI case business ID.
        - `action` string, required
      - `amount_type` 'SEND_AMOUNT' | 'RECEIVE_AMOUNT'
      - `purpose_code` string, nullable: Purpose code for a fiat withdrawal.
      - `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

## Changes

- **2026-11-03** `d213edbaccb6`: 4 warning, 8 info
  - added the new `MICRO_DEPOSIT` enum value to the `list/items/allOf[#/components/schemas/TransactionData]/status` response property for the response status `200`
  - added the new `MICRO_DEPOSIT` enum value to the `list/items/allOf[subschema #2]/sub_transactions/items/allOf[#/components/schemas/TransactionData]/status` response property for the response status `200`
  - added the new `MICRO_DEPOSIT_REVERSED` enum value to the `list/items/allOf[#/components/schemas/TransactionData]/status` response property for the response status `200`
  - added the new `MICRO_DEPOSIT_REVERSED` enum value to the `list/items/allOf[subschema #2]/sub_transactions/items/allOf[#/components/schemas/TransactionData]/status` response property for the response status `200`
  - …8 more

[Operation history](https://skmtc.dev/1money/apis/1money-openapi/changes/v1/customers/:customer_id/transactions/get.md)

---

[API](https://skmtc.dev/1money/apis/1money-openapi.md) - [All operations](https://skmtc.dev/1money/apis/1money-openapi/llms.txt) - [OpenAPI document](https://skmtc.dev/1money/apis/1money-openapi/revisions/d213edbaccb6?raw)
