# Transfer funds between two tenants within the same omnibus

Moves an amount from a source tenant to a destination tenant within the same omnibus by recording a cross-account entry in the Accounting service. Synchronous: blocks on a Temporal workflow (~25s timeout) that validates, reserves, posts to Accounting, and finalizes. See InternalTransferStatus for the meaning of each terminal status.

Endpoint: POST /v1/domains/{domainId}/omnibus/{omnibusId}/tenants/{tenantId}/internal-transfers

## Path parameters:

  - `domainId` (string, required)

  - `omnibusId` (string, required)

  - `tenantId` (string, required)

## Request fields (application/json):

  - `destTenantId` (string, required)
    Destination tenant ID (funds are credited to this tenant)

  - `amount` (string, required)
    Positive integer in the ticker's smallest unit (e.g., wei for ETH, satoshis for BTC, drops for XRP). No leading zeros; zero is not allowed.

  - `tickerId` (string, required)
    Identifier of the ticker to transfer

  - `ledgerId` (string, required)
    Identifier of the blockchain ledger; must match on both source and destination

## Response 201 fields (application/json):

  - `operationId` (string, required)
    Operation ID for this internal transfer

  - `transferId` (string, required)
    Transfer ID for this movement

  - `status` (string, required)
    Enum: "COMPLETED", "FAILED", "PENDING_VERIFICATION"

  - `sourceTenantId` (string, required)
    Source tenant (debited)

  - `destTenantId` (string, required)
    Destination tenant (credited)

  - `amount` (string, required)
    Positive integer in the ticker's smallest unit

  - `tickerId` (string, required)

  - `ledgerId` (string, required)


