---
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}`

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.net/ripple/apis/ripple-custody-api.md) · [All operations](https://skmtc.net/ripple/apis/ripple-custody-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/ripple/ripple-custody-api/revisions/410038300d74/schema)
