---
title: "List offramp orders"
method: GET
path: "/offramp/orders"
tags: ["Offramp"]
---

# List offramp orders

`GET /offramp/orders`

## Request

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

Newest first by when each order was opened. A customer bearer lists that customer's orders; an API key with `deposits:read`, the project's.

## Query parameters

- `cursor` string, uuid: `nextCursor` of the previous page
- `limit` integer

## Headers

- `x-api-key` string: Integrator API key: the project’s orders
- `authorization` string: Customer bearer from `POST /compliance/sessions`, or a project-scoped platform bearer where the route permits tenant access

## Response `200`

A page of orders

- OfframpOrderPage
  - `items` OfframpOrder[], required
    - `id` string, uuid, required
    - `provider` 'noah' | 'swapped', required
    - `status` 'pending' | 'processing' | 'completed' | 'failed' | 'refunded', required
    - `terminal` boolean, required: No stage will change again
    - `stages` object, required
      - `receipt` union, required
        - object
          - `status` 'not_started', required
        - object
          - `status` 'pending', required
        - object
          - `status` 'on_hold', required
          - `reason` 'kyc_required' | 'rfi_open' | 'review', required
        - object
          - `status` 'processing', required
        - object
          - `status` 'completed', required
        - object
          - `status` 'failed', required
          - `reason` 'cancelled' | 'declined' | 'expired' | 'provider_error', required
      - `conversion` union, required
        - object
          - `status` 'not_started', required
        - object
          - `status` 'processing', required
        - object
          - `status` 'on_hold', required
          - `reason` 'rfi_open' | 'review', required
        - object
          - `status` 'completed', required
        - object
          - `status` 'failed', required
          - `reason` 'sub_fee' | 'provider_error', required
      - `delivery` union, required: The fiat payout to the bank
        - object
          - `status` 'not_started', required
        - object
          - `status` 'pending', required
        - object
          - `status` 'on_hold', required
          - `reason` 'rfi_open' | 'review', required
        - object
          - `status` 'processing', required
        - object: The provider sent the payment to the bank
          - `status` 'submitted', required
        - object: The bank accepted the payment
          - `status` 'completed', required
        - object
          - `status` 'failed', required
          - `reason` 'sub_fee' | 'provider_error', required: `sub_fee`: the fees took the whole amount
      - `return` union, required
        - object
          - `status` 'none', required
        - object
          - `status` 'pending', required
        - object
          - `status` 'processing', required
        - object
          - `status` 'completed', required
          - `outcome` 'full_refund' | 'adjustment' | 'unresolved', required
        - object
          - `status` 'failed', required
    - `rail` union, required: `provider_selected` / `unknown` when the provider did not say
      - object
        - `kind` 'fiat', required
        - `method` string, required
      - object
        - `kind` 'exchange', required
        - `connection` string, required
    - `fiat` object, required: What the bank receives, after fees; null until the provider states it
      - `charged` object, nullable, required: The payout, in the currency the bank receives
        - `total` string, nullable, required: The sale, fees included; null when not stated
        - `net` string, nullable, required: What the bank receives, after fees
        - `currency` string, required
      - `eur` object, nullable, required
        - `total` string, nullable, required: The sale, fees included; null when not stated
        - `net` string, nullable, required: What the bank receives, after fees
      - `usd` object, nullable, required
        - `total` string, nullable, required: The sale, fees included; null when not stated
        - `net` string, nullable, required: What the bank receives, after fees
    - `crypto` object, nullable, required
      - `asset` string, required
      - `network` string, required
      - `amount` string, required
    - `providerStatus` string, required: The provider’s own status of its latest leg, else ours (`reserved`, `opened`, `refused`, `unknown`, `expired`); informational
    - `createdAt` string, date-time, required: When the provider says the order began
    - `updatedAt` string, date-time, required
    - `sender` string, required: The address the provider takes the crypto from: `source.address`, or the withdrawal account it pays into
    - `payment` union, required: How to pay the order, by `kind`: `direct` from a source on the provider’s chain and token, `withdrawal_account` from any other
      - OfframpDirectPayment: Send exactly `amount` of `token` on `chain` from `from` to `to`, as a direct ERC-20 transfer whose sender is `from` (an EOA, or the smart account executing it). A different amount or sender is not matched and stays with the provider until recovery.
        - `kind` 'direct', required
        - `from` string, required: The sender: an EOA, or the smart account executing the transfer
        - `to` string, required: Ethereum address (0x followed by 40 hex characters)
        - `chain` string, required: CAIP-2
        - `token` string, required: Ethereum address (0x followed by 40 hex characters)
        - `amount` string, required: Exact, in base units of `token`: the value of the ERC-20 transfer
      - OfframpWithdrawalAccountPayment: Send exactly `amount` of `token` on `chain` from `from` to `to`, the customer’s withdrawal account, after the order opens and before `expiresAt`; we pay the provider from it, and what the payment does not spend stays there for an operator. A different amount or sender, or a transfer mined more than 30 minutes after `expiresAt`, is not matched: it stays on the account until an operator refunds it.
        - `kind` 'withdrawal_account', required
        - `from` string, required: `source.address`: an EOA, or the smart account executing the transfer
        - `to` string, required: The customer’s withdrawal account
        - `chain` string, required: CAIP-2: `source.chain`
        - `token` string, required: `source.token`
        - `amount` string, required: Exact, in base units of `token`: the value of the transfer. Quoted to deliver the order’s amount of the provider’s token on the cheapest route, plus a margin for the fees the customer pays (or, for another asset, 1% for its price); may be a few base units higher when another open withdrawal from this source holds it
    - `expiresAt` string, date-time, required: Send the payment before this
  - `nextCursor` string, uuid, nullable, required

## Other responses

- `400`: Invalid request
- `401`: Missing or invalid credentials
- `403`: The bearer no longer matches its customer, or the API key lacks `deposits:read`
- `500`: Internal failure serving the request
- `503`: The customer could not be read; retry

## Changes

- **2026-11-06** `aa1767d704fa`: 1 breaking, 20 warning, 9 info
  - added `#/components/schemas/OfframpWithdrawalAccountPayment` to the `items/items/payment/anyOf[#/components/schemas/OfframpPayment]/` response property `oneOf` list for the response status `200`
  - added the new `PROVIDER_FORBIDDEN` enum value to the `code` response property for the response status `400`
  - added the new `PROVIDER_FORBIDDEN` enum value to the `code` response property for the response status `401`
  - added the new `PROVIDER_FORBIDDEN` enum value to the `code` response property for the response status `403`
  - …26 more
- **2026-10-16** `816f78ba036e`: 1 info
  - endpoint added

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