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

# Get Deposit Status

> Check the status of a manual deposit

Returns the current status of a manual deposit and its associated swap. Use this endpoint for deposit-based swap routes instead of `/v1/status`.

<ParamField query="depositId" type="string" required>
  The deposit ID returned from the `/v1/execute` endpoint.
</ParamField>

<ResponseExample>
  ```json 200 Completed theme={"system"}
  {
    "data": {
      "depositId": "dep_abc123def456",
      "status": "DONE",
      "subStatus": "COMPLETED",
      "depositAddress": "0xDepositAddress",
      "depositAmount": "1000000000000000000",
      "depositTxHash": "0xDepositTxHash",
      "depositChainId": 1,
      "destinationAddress": "rRecipientXRPAddress",
      "destinationAmount": "3240000000",
      "destinationTxHash": "txDestinationHash",
      "destinationChainId": 900000004,
      "createdAt": 1711234576,
      "updatedAt": 1711234666
    },
    "error": null,
    "meta": {
      "requestId": "o5d6e7f8-a9b0-1234-8901-345678901234",
      "timestamp": 1711234670,
      "rateLimit": {
        "limit": 2000,
        "remaining": 1985,
        "reset": 1711234727
      }
    }
  }
  ```

  ```json 200 Pending theme={"system"}
  {
    "data": {
      "depositId": "dep_abc123def456",
      "status": "PENDING",
      "subStatus": "WAITING_FOR_DEPOSIT",
      "depositAddress": "0xDepositAddress",
      "depositAmount": null,
      "depositTxHash": null,
      "depositChainId": 1,
      "destinationAddress": "rRecipientXRPAddress",
      "destinationAmount": null,
      "destinationTxHash": null,
      "destinationChainId": 900000004,
      "createdAt": 1711234576,
      "updatedAt": 1711234576
    },
    "error": null,
    "meta": {
      "requestId": "p6e7f8a9-b0c1-2345-9012-456789012345",
      "timestamp": 1711234580,
      "rateLimit": {
        "limit": 2000,
        "remaining": 1984,
        "reset": 1711234627
      }
    }
  }
  ```
</ResponseExample>

### Status Values

| Status             | Description                                        |
| ------------------ | -------------------------------------------------- |
| `PENDING`          | Waiting for the user's deposit                     |
| `DEPOSIT_RECEIVED` | Deposit confirmed, swap in progress                |
| `DONE`             | Swap completed successfully                        |
| `FAILED`           | Swap failed                                        |
| `EXPIRED`          | Deposit address expired before funds were received |

### Sub-Status Values

| Sub-Status            | Description                                 |
| --------------------- | ------------------------------------------- |
| `WAITING_FOR_DEPOSIT` | Waiting for the user to send funds          |
| `CONFIRMING_DEPOSIT`  | Deposit detected, waiting for confirmations |
| `PROCESSING_SWAP`     | Swap is being executed                      |
| `COMPLETED`           | Swap finished successfully                  |
| `DEPOSIT_EXPIRED`     | Deposit window has expired                  |

<CodeGroup>
  ```typescript TypeScript theme={"system"}
  const status = await client.getDepositStatus({
    depositId: "dep_abc123def456",
  });

  console.log("Status:", status.data.status);
  console.log("Sub-status:", status.data.subStatus);

  if (status.data.status === "DONE") {
    console.log("Destination tx:", status.data.destinationTxHash);
    console.log("Amount received:", status.data.destinationAmount);
  }
  ```

  ```bash cURL theme={"system"}
  curl "https://api.hypermid.io/v1/execute/deposit/status?depositId=dep_abc123def456" \
    -H "X-API-Key: your-api-key"
  ```

  ```go Go theme={"system"}
  req, _ := http.NewRequest("GET",
      "https://api.hypermid.io/v1/execute/deposit/status?depositId=dep_abc123def456", nil)
  req.Header.Set("X-API-Key", "your-api-key")
  resp, _ := http.DefaultClient.Do(req)
  ```
</CodeGroup>


## OpenAPI

````yaml GET /v1/execute/deposit/status
openapi: 3.0.3
info:
  title: Hypermid Partner API
  version: 1.0.0
  description: >-
    Cross-chain swap aggregator API. Supports 30+ EVM chains, Solana, Bitcoin,
    Sui, and Near Intents chains (NEAR, TON, Tron, XRP, etc.).


    ## Authentication

    Pass your API key via the `X-API-Key` header. Public endpoints work without
    a key (anonymous tier). Partner endpoints (`/v1/partner/*`) require a valid
    key.


    ## Rate Limits

    - **Anonymous**: 30 requests/minute (per IP)

    - **Partner (authenticated)**: 100 requests/minute (per API key)


    These limits are designed for human-driven widget usage and mirror our
    upstream aggregator (LiFi) limits to prevent any single user from exhausting
    shared quota.


    Rate limit info is returned in `meta.rateLimit` on every response.


    ## Response Envelope

    All responses follow the shape:

    ```json

    { "data": <T | null>, "error": <{ code, message, details? } | null>, "meta":
    { "requestId", "timestamp", "rateLimit?" } }

    ```
  contact:
    name: Hypermid
    url: https://hypermid.io
servers:
  - url: https://api.hypermid.io
    description: Production
security:
  - ApiKeyAuth: []
  - {}
tags:
  - name: Swap
    description: Cross-chain swap quoting, routing, status, and reference data
  - name: Execute
    description: Transaction execution and deposit management for Near Intents swaps
  - name: On-Ramp
    description: Fiat-to-crypto on-ramp via RampNow
  - name: Partner
    description: Partner account, analytics, and webhook management (requires X-API-Key)
  - name: Tracking
    description: Swap event tracking for partner attribution
  - name: System
    description: Health check and API metadata
paths:
  /v1/execute/deposit/status:
    get:
      tags:
        - Execute
      summary: Check Near Intents deposit/swap status
      description: >-
        Poll the status of a Near Intents deposit and swap. Status values:
        PENDING_DEPOSIT, DEPOSIT_RECEIVED, SWAPPING, SUCCESS, FAILED, REFUNDED.
      operationId: getDepositStatus
      parameters:
        - name: depositAddress
          in: query
          required: true
          schema:
            type: string
          description: The deposit address to check
        - name: depositMemo
          in: query
          required: false
          schema:
            type: string
          description: Deposit memo (if applicable)
      responses:
        '200':
          description: Deposit/swap status
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ApiResponse'
                  - type: object
                    properties:
                      data:
                        type: object
                        properties:
                          provider:
                            type: string
                          status:
                            type: string
                            enum:
                              - PENDING_DEPOSIT
                              - DEPOSIT_RECEIVED
                              - SWAPPING
                              - SUCCESS
                              - FAILED
                              - REFUNDED
                          depositAddress:
                            type: string
                          swapDetails:
                            type: object
                            properties:
                              amountOut:
                                type: string
                              amountOutFormatted:
                                type: string
                              amountOutUsd:
                                type: number
                              destinationChainTxHashes:
                                type: array
                                items:
                                  type: string
                              refundedAmount:
                                type: string
                              refundReason:
                                type: string
        '400':
          $ref: '#/components/responses/BadRequest'
        '502':
          $ref: '#/components/responses/UpstreamError'
components:
  schemas:
    ApiResponse:
      type: object
      properties:
        data:
          description: Response payload (null on error)
        error:
          nullable: true
          type: object
          properties:
            code:
              type: string
              example: INVALID_PARAMS
            message:
              type: string
              example: 'Missing required parameters: fromChain'
            details:
              type: object
              additionalProperties: true
          required:
            - code
            - message
        meta:
          $ref: '#/components/schemas/Meta'
      required:
        - data
        - error
        - meta
    Meta:
      type: object
      properties:
        requestId:
          type: string
          format: uuid
        timestamp:
          type: integer
          description: Unix epoch seconds
        rateLimit:
          type: object
          properties:
            limit:
              type: integer
            remaining:
              type: integer
            reset:
              type: integer
              description: Unix epoch seconds when the window resets
      required:
        - requestId
        - timestamp
  responses:
    BadRequest:
      description: Invalid or missing parameters
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiResponse'
    UpstreamError:
      description: Upstream provider error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiResponse'
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key
      description: >-
        Partner API key. Optional for public endpoints, required for
        /v1/partner/*.

````