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

# Get Withdrawal Detail

> Polls the status of a withdrawal by withdrawalDetailId. No authentication required (rate-limited).

<Info>
  **Note:** When using the production environment at [moonpay.hel.io](http://app.hel.io), set your API endpoint to `api.hel.io/v1`. For the development environment, use `api.dev.hel.io/v1`.
</Info>

<Tip>
  Poll every \~3 seconds until the withdrawal reaches a terminal state (`COMPLETED`, `FAILED`, `FAILED_EXPIRED`, `EXPIRED`, or `REFUNDED_BY_PROVIDER`). When set at prepare time, `customerId` is echoed on this response.
</Tip>


## OpenAPI

````yaml GET /v1/withdraw-details/{id}
openapi: 3.0.0
info:
  title: Helio Open API
  description: |-
    API schema and definitions for Helio API. <br/> 
          The API is using two types of Authentication, for dashboard endpoints we use <b>JSON Web Token (JWT)</b> that is generated by self custodial wallet signing a message from API.</br> 
          We also support authentication with <b>API Key and Secret</b> which can be generated on <a href='https://hel.io'>Helio dashboard</a>.
  version: 1.0.0
  contact: {}
servers:
  - description: Helio API (Mainnet)
    url: https://api.hel.io
  - description: Helio API (Devnet)
    url: https://api.dev.hel.io
security: []
tags:
  - name: Webhooks
  - name: Exports
  - name: Currencies
    description: >-
      Supported currencies endpoint, includes fiat and digital assets
      </br><i>Authentication: </i><b>None</b>
externalDocs:
  description: Helio product documentation
  url: https://docs.hel.io/
paths:
  /v1/withdraw-details/{id}:
    get:
      tags:
        - Withdrawals
      summary: Get Withdrawal Detail
      description: >-
        Polls the status of a withdrawal by `withdrawalDetailId`. No
        authentication required (rate-limited).
      operationId: WithdrawalDetailController_getDetail
      parameters:
        - name: id
          in: path
          required: true
          description: The withdrawal detail ID.
          schema:
            type: string
      responses:
        '200':
          description: Withdrawal detail retrieved successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WithdrawalDetailEntity'
        '404':
          description: Withdrawal detail not found.
      security: []
components:
  schemas:
    WithdrawalDetailEntity:
      type: object
      properties:
        withdrawalDetailId:
          type: string
        state:
          $ref: '#/components/schemas/WithdrawalState'
        txHash:
          type: string
          nullable: true
        broadcastAck:
          $ref: '#/components/schemas/BroadcastAck'
        errorReason:
          type: string
          nullable: true
          description: Human-readable error when state is FAILED.
        customerId:
          type: string
          nullable: true
          description: >-
            Merchant-defined customer identifier set at prepare time, or null
            when omitted.
    WithdrawalState:
      type: string
      enum:
        - QUOTED
        - SUBMITTING
        - SUBMITTED
        - BRIDGING
        - COMPLETED
        - FAILED
        - FAILED_EXPIRED
        - EXPIRED
        - REFUNDED_BY_PROVIDER
    BroadcastAck:
      type: string
      nullable: true
      enum:
        - acknowledged
        - unacknowledged
        - rejected
      description: >-
        `acknowledged` = confirmed; `unacknowledged` = sent, keep polling;
        `rejected` = terminal failure.

````