> ## 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.

# Transfer status (compatible)

> A drop-in replacement for the common aggregator status endpoint. Reach for it only if you already have a client written against that shape; for new integrations use `GET /v1/status`, which needs no API key.

Requires a partner key. Key it by `txHash` (source, destination or refund transaction hash, or the bridge message id) for contract-call routes, OR by `depositAddress` (+ `depositMemo` on memo-chains) for deposit-based routes.

The response follows the standard aggregator shape — status ∈ {NOT_FOUND, PENDING, DONE, FAILED} with a finer substatus, plus `sending` and `receiving` legs — so an existing client works unchanged. Poll until terminal.



## OpenAPI

````yaml /api-reference/openapi.json get /status
openapi: 3.1.0
info:
  title: Hypermid API
  description: >-
    Price and execute cross-chain swaps, read reference data and payer balances,
    and quote the fiat on-ramp. Quotes return an executable `transactionRequest`
    your frontend submits directly, so Hypermid never custodies the funds.


    Payments — `checkout`, `deposit`, and `withdrawal` sessions — and
    payment-link management are available through these merchant REST endpoints
    and the [`@hypermid/sdk`](https://docs.hypermid.io/sdk/payments) package.
    Payer-facing routes are intentionally omitted.
  version: 0.2.0
  contact: {}
servers:
  - url: https://server.hypermid.io
    description: Production — live keys (sk_live_…)
  - url: https://server.hypermid.io
    description: Sandbox — test keys (sk_test_…), testnets only
security: []
tags:
  - name: payments
    description: >-
      Create and read payment sessions, manage webhooks, and configure payout
      addresses with a secret partner key.
  - name: payment links
    description: >-
      Create, read, version, and revoke reusable checkout payment links with a
      secret partner key.
  - name: quote
    description: >-
      Route pricing for the orchestration product. Returns an executable
      `transactionRequest` your frontend submits directly, so Hypermid never
      custodies the funds.
  - name: status
    description: >-
      Resolve the state of a submitted swap or transfer. Two endpoints with
      different audiences — see each one's description before choosing.
  - name: catalog
    description: >-
      Reference data an integration needs to render a picker: supported chains
      and tokens, prices, routable connections, and fee configuration. A sandbox
      key sees only testnets here.
  - name: balances
    description: Read a payer wallet's token balances across supported chains.
  - name: onramp
    description: >-
      The fiat rail — card and bank payment for crypto, quoted and settled
      through our onramp partner. Requires per-partner onramp credentials on
      your account.
  - name: webhooks
    description: >-
      Events Hypermid sends TO you when a session completes. These are requests
      we make to your server, not endpoints you call.
paths:
  /status:
    get:
      tags:
        - status
      summary: Transfer status (compatible)
      description: >-
        A drop-in replacement for the common aggregator status endpoint. Reach
        for it only if you already have a client written against that shape; for
        new integrations use `GET /v1/status`, which needs no API key.


        Requires a partner key. Key it by `txHash` (source, destination or
        refund transaction hash, or the bridge message id) for contract-call
        routes, OR by `depositAddress` (+ `depositMemo` on memo-chains) for
        deposit-based routes.


        The response follows the standard aggregator shape — status ∈
        {NOT_FOUND, PENDING, DONE, FAILED} with a finer substatus, plus
        `sending` and `receiving` legs — so an existing client works unchanged.
        Poll until terminal.
      operationId: StatusController_status
      parameters:
        - name: toChain
          required: false
          in: query
          schema:
            type: string
        - name: fromChain
          required: false
          in: query
          schema:
            type: string
        - name: bridge
          required: false
          in: query
          schema:
            type: string
        - name: depositMemo
          required: false
          in: query
          schema:
            type: string
        - name: depositAddress
          required: false
          in: query
          schema:
            type: string
        - name: txHash
          required: false
          in: query
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StatusResponseDto'
      security:
        - x-api-key: []
components:
  schemas:
    StatusResponseDto:
      type: object
      properties:
        transactionId:
          type: string
          description: Transfer identifier (the Warp messageId). Stable across both legs.
        tool:
          type: string
          example: hypermid
          description: Bridging tool — always `hypermid`.
        status:
          type: string
          enum:
            - NOT_FOUND
            - INVALID
            - PENDING
            - DONE
            - FAILED
          description: Top-level status. Poll until DONE or FAILED.
        substatus:
          type:
            - object
            - 'null'
          description: >-
            Finer-grained status, using the standard aggregator substatus
            vocabulary.
        substatusMessage:
          type:
            - object
            - 'null'
          description: Human-readable explanation.
        fromAddress:
          type:
            - object
            - 'null'
          description: Sender (source) address.
        toAddress:
          type:
            - object
            - 'null'
          description: Recipient (destination) address.
        sending:
          description: Source-chain leg. Absent until the source tx is indexed.
          anyOf:
            - allOf:
                - $ref: '#/components/schemas/StatusTxInfoDto'
            - type: 'null'
        receiving:
          description: >-
            Destination-chain leg. Absent until the dest tx is mined
            (DONE/REFUNDED).
          anyOf:
            - allOf:
                - $ref: '#/components/schemas/StatusTxInfoDto'
            - type: 'null'
        metadata:
          type: object
          description: Integrator metadata.
          example:
            integrator: hypermid
      required:
        - transactionId
        - tool
        - status
    StatusTxInfoDto:
      type: object
      properties:
        txHash:
          type: string
          description: On-chain transaction hash on this leg's chain.
        txLink:
          type:
            - object
            - 'null'
          description: Block-explorer URL for txHash.
        chainId:
          type: number
          example: 8453
          description: Numeric EVM chain id for this leg.
        token:
          description: The token moved in this transaction.
          allOf:
            - $ref: '#/components/schemas/StatusTokenDto'
        amount:
          type: string
          description: Amount in token smallest units (decimal string).
          example: '1011313'
        timestamp:
          type:
            - object
            - 'null'
          description: Unix seconds when this leg's tx was observed.
          example: 1780657275
      required:
        - txHash
        - chainId
        - token
        - amount
    StatusTokenDto:
      type: object
      properties:
        address:
          type: string
          example: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
          description: Token contract address.
        chainId:
          type: number
          example: 8453
          description: Numeric EVM chain id.
        symbol:
          type: string
          example: USDC
          description: Token symbol.
        decimals:
          type: number
          example: 6
          description: Decimal places for formatting the amount.
        name:
          type: string
          example: USD Coin
          description: Full token name.
      required:
        - address
        - chainId
        - symbol
        - decimals
        - name
  securitySchemes:
    x-api-key:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        Soft-auth read routes accept `x-api-key` with a publishable or partner
        key; money-moving routes require a secret partner key in `Authorization:
        Bearer`.

````