---
title: "List Customer internal accounts"
method: GET
path: "/customers/internal-accounts"
tags: ["Internal Accounts"]
---

# List Customer internal accounts

`GET /customers/internal-accounts`

Retrieve a list of internal accounts with optional filtering parameters. Returns all
internal accounts that match the specified filters. If no filters are provided, returns all internal accounts
(paginated).

Internal accounts are created automatically when a customer is created based on the platform configuration.

## Query parameters

- `currency` string
- `customerId` string
- `limit` integer
- `cursor` string

## Response `200`

Successful operation

- object
  - `data` InternalAccount[], required — List of internal accounts matching the filter criteria
    - `id` string, required — The ID of the internal account
    - `customerId` string — The ID of the customer associated with the internal account. If this field is empty, the internal account belongs to the platform.
    - `balance` CurrencyAmount, required
      - `amount` integer, required — Amount in the smallest unit of the currency (e.g., cents for USD/EUR, satoshis for BTC)
      - `currency` Currency, required
        - `code` string — Three-letter currency code (ISO 4217) for fiat currencies. Some cryptocurrencies may use their own ticker symbols (e.g. "BTC" for Bitcoin, "USDC" for USDC, etc.)
        - `name` string — Full name of the currency
        - `symbol` string — Symbol of the currency
        - `decimals` integer — Number of decimal places for the currency
    - `fundingPaymentInstructions` PaymentInstructions[], required — Payment instructions for funding the account
      - `instructionsNotes` string — Additional human-readable instructions for making the payment
      - `isPlatformAccount` boolean — Indicates whether the account is a platform account or a customer account.
      - `accountOrWalletInfo` union, required
        - PaymentClabeAccountInfo
          - `accountType` 'CLABE', required
          - `clabeNumber` string, required — 18-digit CLABE number (Mexican banking standard)
          - `reference` string, required — Unique reference code that must be included with the payment to properly credit it
        - PaymentUsAccountInfo
          - `accountType` 'US_ACCOUNT', required
          - `accountNumber` string, required — US bank account number
          - `routingNumber` string, required — ACH routing number (9 digits)
          - `accountCategory` 'CHECKING' | 'SAVINGS', required — Type of account (checking or savings)
          - `bankName` string — Name of the bank
          - `reference` string, required — Unique reference code that must be included with the payment to properly credit it
        - PaymentPixAccountInfo
          - `accountType` 'PIX', required
          - `pixKey` string, required — PIX key for Brazilian instant payments
          - `pixKeyType` 'CPF' | 'CNPJ' | 'EMAIL' | 'PHONE' | 'RANDOM', required — Type of PIX key being used
          - `taxId` string, required — Tax ID of the account holder
        - PaymentIbanAccountInfo
          - `accountType` 'IBAN', required
          - `iban` string, required — International Bank Account Number
          - `swiftBic` string, required — SWIFT/BIC code (8 or 11 characters)
          - `reference` string, required — Unique reference code that must be included with the payment to properly credit it
        - PaymentUpiAccountInfo
          - `accountType` 'UPI', required
          - `vpa` string, required — Virtual Payment Address for UPI payments
        - PaymentSparkWalletInfo
          - `accountType` 'SPARK_WALLET', required
          - `address` string, required — Spark wallet address
          - `assetType` 'BTC' | 'USDB', required — Type of asset
          - `invoice` string — Invoice for the payment
        - PaymentLightningInvoiceInfo
          - `accountType` 'LIGHTNING'
          - `invoice` string, required — Invoice for the payment
        - PaymentSolanaWalletInfo
          - `accountType` 'SOLANA_WALLET', required
          - `address` string, required — Solana wallet address
          - `assetType` 'USDC' | 'USDT' — Type of asset
        - PaymentTronWalletInfo
          - `accountType` 'TRON_WALLET', required
          - `address` string, required — Tron wallet address
          - `assetType` 'USDT' — Type of asset
        - PaymentPolygonWalletInfo
          - `accountType` 'POLYGON_WALLET', required
          - `address` string, required — Polygon eth wallet address
          - `assetType` 'USDC' — Type of asset
        - PaymentBaseWalletInfo
          - `accountType` 'BASE_WALLET', required
          - `address` string, required — Base eth wallet address
          - `assetType` 'USDC' — Type of asset
    - `createdAt` string, date-time, required — Timestamp when the internal account was created
    - `updatedAt` string, date-time, required — Timestamp when the internal account was last updated
  - `hasMore` boolean, required — Indicates if more results are available beyond this page
  - `nextCursor` string — Cursor to retrieve the next page of results (only present if hasMore is true)
  - `totalCount` integer — Total number of customers matching the criteria (excluding pagination)

## Other responses

- `400` — Bad request - Invalid parameters
- `401` — Unauthorized
- `500` — Internal service error

## Changes

- **2026-02-13** `ecd31fe01b4e` — 15 breaking, 3 warning
  - added `#/components/schemas/Error400_INVALID_INPUT, #/components/schemas/Error400_MISSING_MANDATORY_USER_INFO, #/components/schemas/Error400_INVITATION_ALREADY_CLAIMED, #/components/schemas/Error400_INVITATIONS_NOT_CONFIGURED, #/components/schemas/Error400_INVALID_UMA_ADDRESS, #/components/schemas/Error400_INVITATION_CANCELLED, #/components/schemas/Error400_QUOTE_REQUEST_FAILED, #/components/schemas/Error400_INVALID_PAYREQ_RESPONSE, #/components/schemas/Error400_INVALID_RECEIVER, #/components/schemas/Error400_PARSE_PAYREQ_RESPONSE_ERROR, #/components/schemas/Error400_CERT_CHAIN_INVALID, #/components/schemas/Error400_CERT_CHAIN_EXPIRED, #/components/schemas/Error400_INVALID_PUBKEY_FORMAT, #/components/schemas/Error400_MISSING_REQUIRED_UMA_PARAMETERS, #/components/schemas/Error400_SENDER_NOT_ACCEPTED, #/components/schemas/Error400_AMOUNT_OUT_OF_RANGE, #/components/schemas/Error400_INVALID_CURRENCY, #/components/schemas/Error400_INVALID_TIMESTAMP, #/components/schemas/Error400_INVALID_NONCE, #/components/schemas/Error400_INVALID_REQUEST_FORMAT, #/components/schemas/Error400_INVALID_BANK_ACCOUNT, #/components/schemas/Error400_SELF_PAYMENT, #/components/schemas/Error400_LOOKUP_REQUEST_FAILED, #/components/schemas/Error400_PARSE_LNURLP_RESPONSE_ERROR, #/components/schemas/Error400_INVALID_AMOUNT, #/components/schemas/Error400_WEBHOOK_ENDPOINT_NOT_SET, #/components/schemas/Error400_WEBHOOK_DELIVERY_ERROR` to the response body `oneOf` list for the response status `400`
  - added `#/components/schemas/Error401_UNAUTHORIZED, #/components/schemas/Error401_INVALID_SIGNATURE` to the response body `oneOf` list for the response status `401`
  - added `#/components/schemas/Error500_GRID_SWITCH_ERROR, #/components/schemas/Error500_INTERNAL_ERROR` to the response body `oneOf` list for the response status `500`
  - the response's body type/format changed from `object`/`` to ``/`` for status `400`
  - …14 more
- …earlier changes not shown

[Full history](https://skmtc.dev/lightsparkdev/apis/grid-api/changes/customers/internal-accounts/get.md)

---

[API](https://skmtc.dev/lightsparkdev/apis/grid-api.md) · [All operations](https://skmtc.dev/lightsparkdev/apis/grid-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/lightsparkdev/grid-api/revisions/ecd31fe01b4e/schema)
