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

# List Withdrawal Methods

> List available withdrawal methods for a given asset.

Returns withdrawal methods with networks, estimated fees, and limits.
Use `method_id` and (optionally) `fee_token` to prepare withdrawals.



## OpenAPI

````yaml /api-reference/openapi_v3_pws.json get /v1/accounts/{account_id}/funds/withdrawals/methods/{asset_symbol}
openapi: 3.1.0
info:
  title: Payward Services API
  description: >-
    The Payward Services (PWS) public API.


    PWS exposes Swaps (institutional FX-style trading), Conversions (rule-driven
    and one-shot fiat ↔ crypto value movement), retail-style Quotes and Price
    Trigger Swaps, end-user Users / Verifications, Funds (deposits, withdrawals,
    addresses, transactions), Portfolio, Earn, Reports, Webhooks, and Ramp
    (hosted fiat-to-crypto on-ramp checkout).


    All requests must be authenticated. All monetary values are decimal strings;
    all timestamps are ISO 8601 UTC. List endpoints are cursor-paginated. Errors
    follow a uniform shape (see `*ErrorResponse` schemas).
  version: v1
  contact:
    name: Payward Services API Support
    url: https://docs.payward.com
    email: api-support@payward.com
servers:
  - url: https://api.services.payward.com
    description: Production
security:
  - ApiKey: []
    ApiNonce: []
    ApiSign: []
tags:
  - name: Users
    description: >-
      Users and headless-user onboarding flows that the partner manages.


      - **Create User** provisions a user with full identity verification fields
      collected up front.

      - **Create Headless User** provisions a lightweight user when your
      licensing agreement allows you to manage KYC data outside Payward.

      - **Get User** retrieves the user's profile, verification status, and
      required actions.

      - **Update User** updates user profile fields and may re-trigger
      verification.


      Use the returned user `id` for calls that require the user's identifier.
  - name: Assets
    description: >-
      Catalog of assets available on the platform with retail-display metadata
      (logos, market data, descriptions).
  - name: Conversions
    description: >-
      Rule-driven and one-shot fiat ↔ crypto value movement, including
      conversion rules, deposits, and whitelisted wallets.
  - name: Earn
    description: >-
      Manage auto-earn preferences and retrieve allocation and reward
      information.
  - name: Funds
    description: >-
      Deposits, withdrawals, addresses, methods, and the consolidated
      funding-transactions ledger.
  - name: Portfolio
    description: End-user portfolio summary, history, and transaction views.
  - name: Price Trigger Swaps
    description: Limit-style orders that execute when a configured price trigger is met.
  - name: On-chain Swaps
    description: >-
      Wallet-funded onchain quote trading for xStock and USDC pairs. On-chain
      quotes settle on-chain through the Payward on-chain proxy contract.
  - name: Ramp
    description: >-
      Hosted fiat-to-crypto on-ramp checkout: country / fiat / payment-method /
      cryptocurrency-asset discovery, transaction limits and prospective quotes,
      and the hosted checkout URL.
  - name: Reports
    description: Settlement and reconciliation reports for the partner.
  - name: Swaps
    description: >-
      Direct partner-to-Payward swap quotes and executions (institutional
      FX-style trading).
  - name: Verifications
    description: Identity verification (KYC) submission and status for end users.
  - name: Webhooks
    description: Manage webhook subscriptions for asynchronous event delivery.
paths:
  /v1/accounts/{account_id}/funds/withdrawals/methods/{asset_symbol}:
    get:
      tags:
        - Funds
      summary: List Withdrawal Methods
      description: |-
        List available withdrawal methods for a given asset.

        Returns withdrawal methods with networks, estimated fees, and limits.
        Use `method_id` and (optionally) `fee_token` to prepare withdrawals.
      operationId: listWithdrawalMethods
      parameters:
        - $ref: '#/components/parameters/AccountIdPath'
        - in: path
          name: asset_symbol
          required: true
          schema:
            $ref: '#/components/schemas/AssetSymbol'
      responses:
        '200':
          description: Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          description: Stable UUID identifier of the withdrawal method.
                          type: string
                          format: uuid
                        network:
                          description: >-
                            Network / method display name (e.g., "Bitcoin",
                            "Ethereum")
                          type:
                            - string
                            - 'null'
                        network_info:
                          description: Blockchain network metadata
                          type:
                            - object
                            - 'null'
                          properties:
                            explorer:
                              description: Link to the blockchain explorer
                              type: string
                            confirmations:
                              description: Number of confirmations required
                              type: string
                            est_confirmation_time:
                              description: >-
                                Estimated time to reach the required
                                confirmations
                              type: string
                            contract_address:
                              description: >-
                                Token contract address (for ERC-20 / wrapped
                                tokens)
                              type:
                                - string
                                - 'null'
                          required:
                            - explorer
                            - confirmations
                            - est_confirmation_time
                        fee:
                          description: >-
                            Estimated withdrawal fee, denominated in the
                            requested asset.
                          type:
                            - object
                            - 'null'
                          properties:
                            symbol:
                              description: Ticker symbol of the asset.
                              allOf:
                                - $ref: '#/components/schemas/AssetSymbol'
                            name:
                              description: >-
                                Human-readable name of the asset (e.g. "Bitcoin"
                                for BTC).
                              type:
                                - string
                                - 'null'
                            type:
                              description: Classification of the asset.
                              type: string
                              enum:
                                - fiat
                                - crypto
                                - stablecoin
                                - xstock
                            amount:
                              $ref: '#/components/schemas/BigDecimal'
                              description: The amount.
                          required:
                            - symbol
                            - type
                            - amount
                        fee_token:
                          description: >-
                            Opaque fee token valid for 10 minutes. Submit in the
                            withdrawal request to guarantee the quoted fee.
                          type:
                            - string
                            - 'null'
                        minimum:
                          description: >-
                            Minimum withdrawal amount, denominated in the
                            requested asset.
                          type:
                            - object
                            - 'null'
                          properties:
                            symbol:
                              description: Ticker symbol of the asset.
                              allOf:
                                - $ref: '#/components/schemas/AssetSymbol'
                            name:
                              description: >-
                                Human-readable name of the asset (e.g. "Bitcoin"
                                for BTC).
                              type:
                                - string
                                - 'null'
                            type:
                              description: Classification of the asset.
                              type: string
                              enum:
                                - fiat
                                - crypto
                                - stablecoin
                                - xstock
                            amount:
                              $ref: '#/components/schemas/BigDecimal'
                              description: The amount.
                          required:
                            - symbol
                            - type
                            - amount
                        maximum:
                          description: >-
                            Maximum withdrawal amount for this method,
                            accounting for the per-transaction cap and remaining
                            user limits.
                          type:
                            - object
                            - 'null'
                          properties:
                            symbol:
                              description: Ticker symbol of the asset.
                              allOf:
                                - $ref: '#/components/schemas/AssetSymbol'
                            name:
                              description: >-
                                Human-readable name of the asset (e.g. "Bitcoin"
                                for BTC).
                              type:
                                - string
                                - 'null'
                            type:
                              description: Classification of the asset.
                              type: string
                              enum:
                                - fiat
                                - crypto
                                - stablecoin
                                - xstock
                            amount:
                              $ref: '#/components/schemas/BigDecimal'
                              description: The amount.
                          required:
                            - symbol
                            - type
                            - amount
                      required:
                        - id
                    description: Result page.
                  next_page_token:
                    description: >-
                      Opaque cursor for the next page of results. Absent when
                      there are no more pages.
                    type: string
                    minLength: 1
                    maxLength: 256
                required:
                  - data
                example:
                  data:
                    - id: b3a7d8b4-9f36-4c2e-9c1e-7b9e6f9a0a11
                      network: Bitcoin
                      network_info:
                        explorer: https://blockstream.info/tx/{txid}
                        confirmations: '3'
                        est_confirmation_time: 30 minutes
                        contract_address: null
                      fee:
                        symbol: BTC
                        name: Bitcoin
                        type: crypto
                        amount: '0.00050000'
                      fee_token: >-
                        eyJhbGciOiJIUzI1NiJ9.eyJmZWUiOiIwLjAwMDUiLCJleHAiOjE3MTAwMDB9.abc
                      minimum:
                        symbol: BTC
                        name: Bitcoin
                        type: crypto
                        amount: '0.00100000'
                      maximum:
                        symbol: BTC
                        name: Bitcoin
                        type: crypto
                        amount: '500.00000000'
                  next_page_token: null
              example:
                data:
                  - id: b3a7d8b4-9f36-4c2e-9c1e-7b9e6f9a0a11
                    network: Bitcoin
                    network_info:
                      explorer: https://blockstream.info/tx/{txid}
                      confirmations: '3'
                      est_confirmation_time: 30 minutes
                      contract_address: null
                    fee:
                      symbol: BTC
                      name: Bitcoin
                      type: crypto
                      amount: '0.00050000'
                    fee_token: >-
                      eyJhbGciOiJIUzI1NiJ9.eyJmZWUiOiIwLjAwMDUiLCJleHAiOjE3MTAwMDB9.abc
                    minimum:
                      symbol: BTC
                      name: Bitcoin
                      type: crypto
                      amount: '0.00100000'
                    maximum:
                      symbol: BTC
                      name: Bitcoin
                      type: crypto
                      amount: '500.00000000'
                next_page_token: null
          headers:
            Request-Id:
              $ref: '#/components/headers/RequestId'
            X-RateLimit-Limit:
              $ref: '#/components/headers/RateLimitLimit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/RateLimitRemaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/RateLimitReset'
            Strict-Transport-Security:
              $ref: '#/components/headers/StrictTransportSecurity'
            X-Content-Type-Options:
              $ref: '#/components/headers/XContentTypeOptions'
            Content-Security-Policy:
              $ref: '#/components/headers/ContentSecurityPolicy'
            Cache-Control:
              $ref: '#/components/headers/CacheControl'
        '400':
          description: Validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationErrorResponse'
          headers:
            Request-Id:
              $ref: '#/components/headers/RequestId'
            X-RateLimit-Limit:
              $ref: '#/components/headers/RateLimitLimit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/RateLimitRemaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/RateLimitReset'
            Strict-Transport-Security:
              $ref: '#/components/headers/StrictTransportSecurity'
            X-Content-Type-Options:
              $ref: '#/components/headers/XContentTypeOptions'
            Content-Security-Policy:
              $ref: '#/components/headers/ContentSecurityPolicy'
            Cache-Control:
              $ref: '#/components/headers/CacheControl'
        '401':
          description: Authentication failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthenticatedErrorResponse'
          headers:
            Request-Id:
              $ref: '#/components/headers/RequestId'
            X-RateLimit-Limit:
              $ref: '#/components/headers/RateLimitLimit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/RateLimitRemaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/RateLimitReset'
            Strict-Transport-Security:
              $ref: '#/components/headers/StrictTransportSecurity'
            X-Content-Type-Options:
              $ref: '#/components/headers/XContentTypeOptions'
            Content-Security-Policy:
              $ref: '#/components/headers/ContentSecurityPolicy'
            Cache-Control:
              $ref: '#/components/headers/CacheControl'
        '408':
          description: Deadline exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeadlineExceededErrorResponse'
          headers:
            Request-Id:
              $ref: '#/components/headers/RequestId'
            X-RateLimit-Limit:
              $ref: '#/components/headers/RateLimitLimit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/RateLimitRemaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/RateLimitReset'
            Strict-Transport-Security:
              $ref: '#/components/headers/StrictTransportSecurity'
            X-Content-Type-Options:
              $ref: '#/components/headers/XContentTypeOptions'
            Content-Security-Policy:
              $ref: '#/components/headers/ContentSecurityPolicy'
            Cache-Control:
              $ref: '#/components/headers/CacheControl'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitErrorResponse'
          headers:
            Request-Id:
              $ref: '#/components/headers/RequestId'
            X-RateLimit-Limit:
              $ref: '#/components/headers/RateLimitLimit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/RateLimitRemaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/RateLimitReset'
            Strict-Transport-Security:
              $ref: '#/components/headers/StrictTransportSecurity'
            X-Content-Type-Options:
              $ref: '#/components/headers/XContentTypeOptions'
            Content-Security-Policy:
              $ref: '#/components/headers/ContentSecurityPolicy'
            Cache-Control:
              $ref: '#/components/headers/CacheControl'
            Retry-After:
              $ref: '#/components/headers/RetryAfter'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalErrorResponse'
          headers:
            Request-Id:
              $ref: '#/components/headers/RequestId'
            X-RateLimit-Limit:
              $ref: '#/components/headers/RateLimitLimit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/RateLimitRemaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/RateLimitReset'
            Strict-Transport-Security:
              $ref: '#/components/headers/StrictTransportSecurity'
            X-Content-Type-Options:
              $ref: '#/components/headers/XContentTypeOptions'
            Content-Security-Policy:
              $ref: '#/components/headers/ContentSecurityPolicy'
            Cache-Control:
              $ref: '#/components/headers/CacheControl'
        '503':
          description: Service unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceUnavailableErrorResponse'
          headers:
            Request-Id:
              $ref: '#/components/headers/RequestId'
            X-RateLimit-Limit:
              $ref: '#/components/headers/RateLimitLimit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/RateLimitRemaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/RateLimitReset'
            Strict-Transport-Security:
              $ref: '#/components/headers/StrictTransportSecurity'
            X-Content-Type-Options:
              $ref: '#/components/headers/XContentTypeOptions'
            Content-Security-Policy:
              $ref: '#/components/headers/ContentSecurityPolicy'
            Cache-Control:
              $ref: '#/components/headers/CacheControl'
      security:
        - ApiKey: []
          ApiNonce: []
          ApiSign: []
      x-codeSamples:
        - lang: bash
          label: curl
          source: >-
            curl -X GET
            "https://api.services.payward.com/v1/funds/withdrawals/methods/USDC"
            \
              -H "API-Key: $PWS_API_KEY" \
              -H "API-Nonce: $PWS_API_NONCE" \
              -H "API-Sign: $PWS_API_SIGN"
components:
  parameters:
    AccountIdPath:
      in: path
      name: account_id
      required: true
      description: >-
        ID of the account the request applies to. This refers to one of the
        accounts held by the user the request is acting on behalf of (typically
        the user's main account, but any of the user's accounts is accepted).
        Routes the request to that specific account container.
      schema:
        $ref: '#/components/schemas/AccountId'
      example: W4BE9868GY65TB6523
  schemas:
    AssetSymbol:
      description: Ticker symbol of an asset (e.g. `BTC`, `USDC`, `EUR`).
      type: string
      minLength: 3
      maxLength: 16
      example: BTC
    BigDecimal:
      type: string
      format: decimal128
      example: '1.23'
      pattern: ^-?[0-9]+(\.[0-9]+)?$
      minLength: 1
      maxLength: 64
    ValidationErrorResponse:
      description: The request was rejected because the client supplied invalid input.
      type: object
      properties:
        error:
          description: Error details.
          type: object
          properties:
            type:
              type: string
            status:
              type: integer
              format: int32
              enum:
                - 400
            instance:
              type: string
            code:
              type: string
              enum:
                - bad_request
            doc_url:
              type: string
              format: uri
            causes:
              type: array
              items:
                $ref: '#/components/schemas/ValidationCause'
          required:
            - type
            - status
            - instance
            - code
      required:
        - error
    UnauthenticatedErrorResponse:
      description: Authentication credentials were missing or invalid.
      type: object
      properties:
        error:
          description: Error details.
          type: object
          properties:
            type:
              type: string
            status:
              type: integer
              format: int32
              enum:
                - 401
            instance:
              type: string
            code:
              type: string
              enum:
                - unauthenticated
            doc_url:
              type: string
              format: uri
            causes:
              type: array
              items:
                type: object
                additionalProperties: true
          required:
            - type
            - status
            - instance
            - code
      required:
        - error
    DeadlineExceededErrorResponse:
      description: The upstream request deadline was exceeded.
      type: object
      properties:
        error:
          description: Error details.
          type: object
          properties:
            type:
              type: string
            status:
              type: integer
              format: int32
              enum:
                - 504
            instance:
              type: string
            code:
              type: string
              enum:
                - deadline_exceeded
            doc_url:
              type: string
              format: uri
            causes:
              type: array
              items:
                type: object
                additionalProperties: true
          required:
            - type
            - status
            - instance
            - code
      required:
        - error
    RateLimitErrorResponse:
      description: The request rate limit was exceeded.
      type: object
      properties:
        error:
          description: Error details.
          type: object
          properties:
            type:
              type: string
            status:
              type: integer
              format: int32
              enum:
                - 429
            instance:
              type: string
            code:
              type: string
              enum:
                - resource_exhausted
            doc_url:
              type: string
              format: uri
            causes:
              type: array
              items:
                type: object
                additionalProperties: true
          required:
            - type
            - status
            - instance
            - code
      required:
        - error
    InternalErrorResponse:
      description: An internal server error occurred.
      type: object
      properties:
        error:
          description: Error details.
          type: object
          properties:
            type:
              type: string
            status:
              type: integer
              format: int32
              enum:
                - 500
            instance:
              type: string
            code:
              type: string
              enum:
                - internal
            doc_url:
              type: string
              format: uri
            causes:
              type: array
              items:
                type: object
                additionalProperties: true
          required:
            - type
            - status
            - instance
            - code
      required:
        - error
    ServiceUnavailableErrorResponse:
      description: The service is temporarily unavailable.
      type: object
      properties:
        error:
          description: Error details.
          type: object
          properties:
            type:
              type: string
            status:
              type: integer
              format: int32
              enum:
                - 503
            instance:
              type: string
            code:
              type: string
              enum:
                - unavailable
            doc_url:
              type: string
              format: uri
            causes:
              type: array
              items:
                type: object
                additionalProperties: true
          required:
            - type
            - status
            - instance
            - code
      required:
        - error
    AccountId:
      type: string
      description: Canonical identifier for an account in the Payward public API.
      minLength: 14
      maxLength: 42
    ValidationCause:
      description: One failed field-level validation rule.
      type: object
      properties:
        field:
          description: Dot-notation path to the offending request field.
          type: string
        message:
          description: Human-readable explanation of the failed validation rule.
          type: string
      required:
        - field
        - message
  headers:
    RequestId:
      description: >-
        Unique identifier for tracing this request across services. Include in
        support tickets.
      schema:
        type: string
        format: uuid
        example: 5f4d2a8e-91a4-4d6c-8a17-9b1e2c3f4a5b
    RateLimitLimit:
      description: Total requests allowed in the current window.
      schema:
        type: integer
        example: 1000
    RateLimitRemaining:
      description: Requests remaining in the current window.
      schema:
        type: integer
        example: 955
    RateLimitReset:
      description: Unix timestamp (seconds) when the rate-limit window resets.
      schema:
        type: integer
        format: int64
        example: 1713182400
    StrictTransportSecurity:
      description: >-
        Enforces HTTPS for the configured period. Always `max-age=63072000;
        includeSubDomains; preload`.
      schema:
        type: string
        example: max-age=63072000; includeSubDomains; preload
    XContentTypeOptions:
      description: Disables MIME sniffing. Always `nosniff`.
      schema:
        type: string
        enum:
          - nosniff
        example: nosniff
    ContentSecurityPolicy:
      description: >-
        Prevents embedding and resource loading. Always `default-src 'none';
        frame-ancestors 'none'`.
      schema:
        type: string
        example: default-src 'none'; frame-ancestors 'none'
    CacheControl:
      description: Prevents caching of sensitive financial data. Always `no-store`.
      schema:
        type: string
        enum:
          - no-store
        example: no-store
    RetryAfter:
      description: Seconds the client should wait before retrying.
      schema:
        type: integer
        example: 30
  securitySchemes:
    ApiKey:
      type: apiKey
      name: API-Key
      in: header
      description: Your public API key. Identifies the partner making the request.
    ApiNonce:
      type: apiKey
      name: API-Nonce
      in: header
      description: Monotonically increasing nonce included in the request signature.
    ApiSign:
      type: apiKey
      name: API-Sign
      in: header
      description: HMAC signature over the request, computed with your private key.

````