---
title: "List Internal Transfers"
method: GET
path: "/v1/internal-transfers"
tags: ["Accounts and money"]
---

# List Internal Transfers

`GET /v1/internal-transfers`

## Request

- Base URL: `https://hyperscale0.ai`
- URL: `https://hyperscale0.ai/v1/internal-transfers`
- Auth: one of:
  - HTTP bearer
  - HTTP bearer

List Internal Transfers as a cursor-paginated page. Money moving between two Hyperscale Accounts. It never crosses the provider boundary, and a reserved transfer holds the funds until it is posted or expires.

## Query parameters

- `productId` string: Hyperscale product ID
- `limit` integer: Maximum items to return (1-100). Defaults to 50 when omitted.
- `cursor` string
- `query` string
- `createdFrom` string, date-time
- `createdTo` string, date-time
- `accountId` string: Hyperscale account ID
- `customerId` string: Tenant-local customer ID
- `book` 'cash' | 'claim'
- `currency` 'SAR'
- `amountMin` string: Non-negative minor-unit integer amount serialized as a string (at most 18 digits)
- `amountMax` string: Non-negative minor-unit integer amount serialized as a string (at most 18 digits)
- `timeBasis` 'created' | 'posted'
- `postedFrom` string, date-time
- `postedTo` string, date-time
- `status` 'settled' | 'reversed' | 'accepted' | 'reserved' | 'posted' | 'voided' | 'failed'

## Headers

- `X-Hyperscale-Environment` 'sandbox' | 'live'

## Response `200`

Success

- InternalTransferListOutput
  - `items` object[], required
    - `transferId` string, required: Hyperscale transfer ID
    - `tenantId` string, required: Organization tenant ID
    - `amount` string: Non-negative minor-unit integer amount serialized as a string (at most 18 digits)
    - `postedAmount` string: Non-negative minor-unit integer amount serialized as a string (at most 18 digits)
    - `currency` string
    - `sourceAccountId` string: Hyperscale account ID
    - `destinationAccountId` string: Hyperscale account ID
    - `status` 'settled' | 'reversed' | 'accepted' | 'reserved' | 'posted' | 'voided' | 'failed'
    - `expiresAt` string, date-time
    - `expiredAt` string, date-time
    - `metadata` Metadata (unresolved $ref)
    - `correctsTransferId` string: Hyperscale transfer ID
    - `operationId` string: Hyperscale operation ID
    - `productName` string
    - `accountLabel` string
    - `ownerName` string
    - `sourceName` string
    - `destinationName` string
    - `record` object
      - `productId` string, required: Hyperscale product ID
      - `kind` string, required
      - `objectId` string, required
      - `title` string, required
    - `createdAt` string, date-time
    - `postedInRangeAmount` string: Non-negative minor-unit integer amount serialized as a string (at most 18 digits)
    - `recordedAt` string, date-time: Set only on a sandbox transfer dated on its Product's clock: the wall time Hyperscale recorded it. createdAt is then the Product's business time, which runs ahead of today once the Product's sandbox clock is advanced.
  - `nextCursor` string
  - `statusCounts` object

## Other responses

- `default`: ErrorResponse. See x-error-codes and x-errors for codes, HTTP statuses and retry guidance.

---

[API](https://skmtc.dev/hyperscale0/apis/hyperscale-product-api.md) · [All operations](https://skmtc.dev/hyperscale0/apis/hyperscale-product-api/llms.txt) · [OpenAPI document](https://skmtc.dev/hyperscale0/apis/hyperscale-product-api/revisions/e9e8faa044d5?raw)
