---
title: "Retry a deposit"
method: POST
path: "/deposits/{id}/retry"
tags: ["Processing"]
---

# Retry a deposit

`POST /deposits/{id}/retry`

## Request

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

Retries a failed or rejected deposit.

## Path parameters

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

## Headers

- `x-api-key` string: API key for authentication
- `x-api-version` string: API version identifier (e.g. "2026-04.amazon"). Optional today, will become required in a future release.

## Request body

- RetryDepositByIdRequestBody
  - `settlementLayer` string: Optional settlement-layer override for the re-drive (e.g. "ACROSS", "RELAY"). EVM deposits only; rejected for Solana. Omit to let the orchestrator pick.

## Response `200`

Deposit retry initiated

- RetryDepositByIdResponse
  - `message` string, required
  - `status` 'pending' | 'processing' | 'completed' | 'failed' | 'rejected' | 'ignored' | 'expecting_refund' | 'refunded' | 'delayed' | 'reconciliation_required', required

## Other responses

- `400`: Deposit not in a retryable state, a Tron deposit, settlement-layer override given for a non-EVM deposit, or the Solana deposit has no output-token route
- `401`: Authentication required or invalid
- `403`: Unauthorized - API key lacks write scope
- `404`: Deposit not found or not owned by the caller
- `409`: HyperCore leg 1 already completed (Core funds swept to HyperEVM) — a leg-2 refund/fill concern, not a leg-1 retry; or an earlier EVM intent of this deposit may still be settling or already moved its funds (reconcile instead)
- `503`: Settlement evidence is temporarily unreadable; retry later (see Retry-After)

## Changes

- **2026-11-06** `aa1767d704fa`: 4 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`
- **2026-09-17** `676300ac19ff`: 5 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
  - …1 more
- **2026-09-11** `b49146029e5a`: 1 breaking, 1 warning
  - the `header` request parameter `x-api-key` became required
  - deleted the `header` request parameter `authorization`
- **2026-08-11** `bb8db07d1791`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/rhinestonewtf/apis/deposit-service-api/changes/deposits/:id/retry/post.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)
