> ## Documentation Index
> Fetch the complete documentation index at: https://docs.privy.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Orders

> Poll crypto deposit sweep status by order ID or by timestamp

An order is the wallet action that sweeps a deposit into the destination wallet after you [create a deposit account](/wallets/funding/crypto-deposits/create-deposit-account). Status is the wallet-action status: `pending`, `succeeded`, `rejected`, or `failed`. `pending` means the sweep has not finished: there may be no steps yet, or a step may still be running. `succeeded` means every step completed. `rejected` failed before any onchain effects. `failed` may have onchain effects.

## Get an order

Fetch a sweep by wallet action ID. The path wallet is the destination from create. This calls [`GET /v1/wallets/{wallet_id}/deposit_accounts/crypto/orders/{order_id}`](/api-reference/crypto-deposits/get-order).

<View title="REST API" icon="terminal">
  The request rejects when the wallet or order cannot be loaded.

  ```bash theme={"system"}
  curl --request GET \
    https://api.privy.io/v1/wallets/{wallet_id}/deposit_accounts/crypto/orders/{order_id} \
    -u "<your-privy-app-id>:<your-privy-app-secret>" \
    -H "privy-app-id: <your-privy-app-id>"
  ```
</View>

<View title="React" icon="react">
  `getOrder` rejects when the wallet or order cannot be loaded.

  <Warning>
    `useHeadlessCryptoDeposit` is experimental. Import it from `@privy-io/react-auth`. The interface
    may change without a major SDK version bump.
  </Warning>

  ```tsx {skip-check} theme={"system"}
  import {useHeadlessCryptoDeposit} from '@privy-io/react-auth';

  const {getOrder} = useHeadlessCryptoDeposit();

  const order = await getOrder({
    walletId: '<wallet-id>',
    orderId: '<wallet-action-id>'
  });
  ```
</View>

<View title="React Native" icon="react">
  `getOrder` rejects when the wallet or order cannot be loaded.

  <Warning>
    `useHeadlessCryptoDeposit` is experimental. Import it from `@privy-io/expo`. The interface may
    change without a major SDK version bump.
  </Warning>

  ```tsx {skip-check} theme={"system"}
  import {useHeadlessCryptoDeposit} from '@privy-io/expo';

  const {getOrder} = useHeadlessCryptoDeposit();

  const order = await getOrder({
    walletId: '<wallet-id>',
    orderId: '<wallet-action-id>'
  });
  ```
</View>

<View title="NodeJS" icon="node-js">
  `orders.get` rejects when the wallet or order cannot be loaded.

  ```ts {skip-check} theme={"system"}
  import {PrivyClient} from '@privy-io/node';

  const privy = new PrivyClient({
    appId: 'insert-your-app-id',
    appSecret: 'insert-your-app-secret'
  });

  const order = await privy.wallets().depositAccounts.crypto.orders.get('<wallet-action-id>', {
    wallet_id: '<wallet-id>'
  });
  ```
</View>

<ResponseField name="id" type="string">
  Wallet action ID of the sweep.
</ResponseField>

<ResponseField name="status" type="'pending' | 'succeeded' | 'rejected' | 'failed'">
  Wallet-action status.
</ResponseField>

## Get the next order

Fetch the earliest sweep into the destination wallet after `after`. `after` is exclusive. Use this to poll when you do not yet have an order ID. This calls [`GET /v1/wallets/{wallet_id}/deposit_accounts/crypto/next_order`](/api-reference/crypto-deposits/get-next-order).

<View title="REST API" icon="terminal">
  The response `order` is `null` when no sweep exists after `after`. The request rejects when the wallet cannot be loaded.

  ```bash theme={"system"}
  curl --request GET \
    "https://api.privy.io/v1/wallets/{wallet_id}/deposit_accounts/crypto/next_order?after=2026-09-08T20:00:00.000Z" \
    -u "<your-privy-app-id>:<your-privy-app-secret>" \
    -H "privy-app-id: <your-privy-app-id>"
  ```
</View>

<View title="React" icon="react">
  `getNextOrder` returns `{order: null}` when no sweep exists after `after`, and rejects when the wallet cannot be loaded.

  ```tsx {skip-check} theme={"system"}
  import {useHeadlessCryptoDeposit} from '@privy-io/react-auth';

  const {getNextOrder} = useHeadlessCryptoDeposit();

  const {order} = await getNextOrder({
    walletId: '<wallet-id>',
    after: '2026-09-08T20:00:00.000Z'
  });
  ```
</View>

<View title="React Native" icon="react">
  `getNextOrder` returns `{order: null}` when no sweep exists after `after`, and rejects when the wallet cannot be loaded.

  ```tsx {skip-check} theme={"system"}
  import {useHeadlessCryptoDeposit} from '@privy-io/expo';

  const {getNextOrder} = useHeadlessCryptoDeposit();

  const {order} = await getNextOrder({
    walletId: '<wallet-id>',
    after: '2026-09-08T20:00:00.000Z'
  });
  ```
</View>

<View title="NodeJS" icon="node-js">
  `getNextOrder` returns `{order: null}` when no sweep exists after `after`, and rejects when the wallet cannot be loaded.

  ```ts {skip-check} theme={"system"}
  import {PrivyClient} from '@privy-io/node';

  const privy = new PrivyClient({
    appId: 'insert-your-app-id',
    appSecret: 'insert-your-app-secret'
  });

  const {order} = await privy.wallets().depositAccounts.crypto.getNextOrder('<wallet-id>', {
    after: '2026-09-08T20:00:00.000Z'
  });
  ```
</View>

<ParamField query="after" type="string" required>
  ISO 8601 timestamp. Returns the earliest sweep strictly after this time.
</ParamField>

<ResponseField name="order" type="object | null">
  Same `{(id, status)}` object as get order, or `null` if no sweep exists after `after`.
</ResponseField>

## Related

<CardGroup cols={2}>
  <Card title="Create a deposit account" icon="arrow-right-to-bracket" href="/wallets/funding/crypto-deposits/create-deposit-account">
    Provision deposit addresses
  </Card>

  <Card title="Quotes" icon="calculator" href="/wallets/funding/crypto-deposits/quotes">
    Indicative route quotes before creating an address
  </Card>

  <Card title="Get order API" icon="terminal" href="/api-reference/crypto-deposits/get-order">
    `GET /v1/wallets/{wallet_id}/deposit_accounts/crypto/orders/{order_id}`
  </Card>

  <Card title="Get next order API" icon="terminal" href="/api-reference/crypto-deposits/get-next-order">
    `GET /v1/wallets/{wallet_id}/deposit_accounts/crypto/next_order`
  </Card>
</CardGroup>
