---
title: "Get a deposit"
method: GET
path: "/deposits/{id}"
tags: ["Utilities"]
---

# Get a deposit

`GET /deposits/{id}`

## Request

- Base URL: `https://v1.orchestrator.rhinestone.dev/deposit-processor`
- URL: `https://v1.orchestrator.rhinestone.dev/deposit-processor/deposits/{id}`
- Auth: one of:
  - API key in header `x-api-key`
  - HTTP bearer
- TypeScript: <https://skmtc.dev/rhinestonewtf/apis/deposit-service-api/docs/deposits/:id/get.ts> (a function with typed inputs; its response is checked against the schema)

Returns a deposit for the authenticated project.

## Path parameters

- `id` string, required: Deposit id. Returned by GET /deposits.

## Headers

- `x-api-key` string: API key for authentication

## Response `200`

The deposit

- DepositListItem
  - `id` string, required: Deposit id. Pass to GET /deposits/{id}/quotes.
  - `chain` string, required
  - `txHash` string, required
  - `token` string, required
  - `tokenSymbol` string, nullable, required: Display symbol for `token`, resolved at read time. Null when the token could not be resolved — render the raw address.
  - `tokenDecimals` integer, nullable, required: Decimals for `token`, i.e. what makes `amount` and `sourceAmount` renderable — both are raw base units. Null when unresolved; render the raw integer rather than guessing 18.
  - `targetTokenSymbol` string, nullable, required: Display symbol for `targetToken`. Null when unresolved.
  - `targetTokenDecimals` integer, nullable, required: Decimals for `targetToken`, applying to `destinationAmount`. Null when unresolved.
  - `amount` string, required: Numeric string representing a bigint value
  - `sender` string, required
  - `recipient` string, required: Destination-chain address that receives the funds. Falls back to the smart account for EVM/HyperCore/Tron when no distinct recipient is configured; for Solana it is the EVM recipient, never the internal swig.
  - `depositAddress` string, required: Source-chain address that received the deposit (EVM smart account, Solana wallet PDA, or Tron deposit address).
  - `targetChain` string, required
  - `targetToken` string, required
  - `status` 'pending' | 'processing' | 'completed' | 'failed' | 'rejected' | 'ignored' | 'expecting_refund' | 'refunded' | 'delayed' | 'reconciliation_required', required
  - `sourceTxHash` string, nullable, required
  - `destinationTxHash` string, nullable, required
  - `sourceAmount` string, nullable, required: Numeric string representing a bigint value
  - `destinationAmount` string, nullable, required: Numeric string representing a bigint value
  - `sponsoredGasUsd` string: USD value of gas absorbed for the user. Absent when no sponsorship accounting exists; "0" means nothing was sponsored.
  - `sponsoredBridgeFeeUsd` string: USD value of the bridge fee absorbed for the user. Excludes app fees and sponsor surcharges. Absent when no accounting exists; "0" means nothing was sponsored.
  - `createdAt` string, required
  - `completedAt` string, nullable, required
  - `errorCode` string, nullable, required
  - `creditKind` 'deposit' | 'collector_return', required
  - `retryable` boolean, required
  - `refundAttributions` object[]
    - `submissionKey` string, required
    - `intentId` string, required
    - `state` string, required
    - `reason` string, nullable, required
    - `references` object[]
      - `chain` string, required
      - `txHash` string, required
      - `vm` string
    - `credit` object
      - `chain` string, required
      - `txHash` string, required
      - `account` string, required
      - `token` string, required
      - `amount` string, required
    - `successorDepositId` string
  - `refundOf` object[]
    - `depositId` string, required
    - `submissionKey` string, required
  - `delivery` object
    - `outcome` 'pending' | 'delivered' | 'returned' | 'failed' | 'unresolved', required
    - `depositId` string, nullable, required
    - `reason` string
    - `chain` string
    - `token` string
    - `recipient` string
    - `amount` string
    - `txHash` string
    - `completedAt` string
  - `isSpam` boolean, required
  - `timing` DepositTimingEstimate: Indicative, non-contractual duration estimate derived from qualifying recent completed deposits on the corridor or chain pair, falling back to the selected route’s indicative estimate when aggregate data is unavailable. Always `expectedSeconds` <= `softDelaySeconds` <= `escalatedDelaySeconds`. On a deposit the seconds are measured from its `createdAt` and are served only while it is still in flight (`pending`, `processing`, `delayed`); on a quote preview they describe the quoted route. Resolved per request, so it may change between calls, and absent whenever no estimate is available. Never a deadline, an expiry or a guarantee.
    - `expectedSeconds` integer, required: How long the deposit is expected to take end to end, in seconds. Derived from qualifying recent completed deposits or the selected route’s indicative estimate; never a deadline or guarantee.
    - `softDelaySeconds` integer, required: Seconds after which the deposit is running slower than usual and a client may reassure the user. Indicative only.
    - `escalatedDelaySeconds` integer, required: Seconds after which the deposit is unusually slow and a client may offer support. Indicative only, not an SLA.

## Other responses

- `400`: Invalid deposit id
- `401`: Authentication required, or invalid API key
- `403`: API key lacks required deposits scope
- `404`: Deposit not found or not owned by the caller
- `503`: Tenant billing verification is temporarily unavailable; retry after 5 seconds.

## Changes

- **2026-11-06** `aa1767d704fa`: 8 info
  - the endpoint scheme security `internalProjectBearer` was added to the API
  - the endpoint scheme security `tenantApiKey` was added to the API
  - the `header` request parameter `x-api-key` became optional
  - added the non-success response with the status `503`
  - …4 more
- **2026-09-17** `676300ac19ff`: 4 info
  - added the optional property `code` to the response with the `400` status
  - added the optional property `code` to the response with the `401` status
  - added the optional property `code` to the response with the `403` status
  - added the optional property `code` to the response with the `404` status
- **2026-09-11** `b49146029e5a`: 1 breaking, 1 warning
  - the `header` request parameter `x-api-key` became required
  - deleted the `header` request parameter `authorization`
- **2026-09-04** `54262a43c6a8`: 1 info
  - added the optional property `timing` to the response with the `200` status
- **2026-08-11** `bb8db07d1791`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/rhinestonewtf/apis/deposit-service-api/changes/deposits/:id/get.md)

---

[API](https://skmtc.dev/rhinestonewtf/apis/deposit-service-api.md) - [All operations](https://skmtc.dev/rhinestonewtf/apis/deposit-service-api/llms.txt) - [OpenAPI document](https://skmtc.dev/rhinestonewtf/apis/deposit-service-api/revisions/aa1767d704fa?raw)
