---
title: "Get a single internal transfer by operation ID"
method: GET
path: "/v1/domains/{domainId}/omnibus/{omnibusId}/internal-transfers/{operationId}"
tags: ["Internal transfers"]
---

# Get a single internal transfer by operation ID

`GET /v1/domains/{domainId}/omnibus/{omnibusId}/internal-transfers/{operationId}`

## Request

- Base URL: `https://docs.ripple.com` (the document declares no server; this is the origin it was published from)
- URL: `https://docs.ripple.com/v1/domains/{domainId}/omnibus/{omnibusId}/internal-transfers/{operationId}`
- Auth: none declared

Returns the current state of an internal transfer. Clients poll this after a 202 from the create endpoint until the status is terminal (COMPLETED or FAILED) or PENDING_VERIFICATION. Reads are eventually consistent.

## Path parameters

- `domainId` string, uuid, required
- `omnibusId` string, uuid, required
- `operationId` string, uuid, required

## Response `200`

Current state of the internal transfer

- OmnibusInternalTransferResponse
  - `operationId` string, uuid, required: Operation ID for this internal transfer
  - `transferId` string, uuid, required: Transfer ID for this movement
  - `status` 'PENDING' | 'COMPLETED' | 'FAILED' | 'PENDING_VERIFICATION', required
  - `sourceTenantId` string, uuid, required: Source tenant (debited)
  - `destTenantId` string, uuid, required: Destination tenant (credited)
  - `amount` string, required: Positive integer in the ticker's smallest unit
  - `tickerId` string, uuid, required
  - `ledgerId` string, required

## Other responses

- `404`: No internal transfer with this operationId (or not yet visible)

---

[API](https://skmtc.dev/ripple/apis/ripple-custody-api.md) - [All operations](https://skmtc.dev/ripple/apis/ripple-custody-api/llms.txt) - [OpenAPI document](https://skmtc.dev/ripple/apis/ripple-custody-api/revisions/c6f0ad6b70c0?raw)
