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

# Withdraw Fund

> Initiates a withdrawal from a platform user’s wallet using a supported transfer method.

This endpoint:
- Processes the withdrawal request based on the selected transfer method (e.g., bank, card, etc.)
- Returns the transaction details upon successful processing



## OpenAPI

````yaml POST /api/platform/withdrawals/withdraw-fund/{user_id}
openapi: 3.1.0
info:
  title: paywint
  version: 0.1.0
servers:
  - url: http://localhost:8001
  - url: https://api.pw.wintpay.com
  - url: https://test.pw.wintpay.com
  - url: https://api.sandbox.paywint.com
security: []
paths:
  /api/platform/withdrawals/withdraw-fund/{user_id}:
    post:
      tags:
        - Platform Withdrawals
      summary: Withdraw Fund
      description: >-
        Initiates a withdrawal from a platform user’s wallet using a supported
        transfer method.


        This endpoint:

        - Processes the withdrawal request based on the selected transfer method
        (e.g., bank, card, etc.)

        - Returns the transaction details upon successful processing
      operationId: withdraw_fund_api_platform_withdrawals_withdraw_fund__user_id__post
      parameters:
        - name: user_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
            description: Unique identifier (UUID) of the user initiating the withdrawal.
            title: User Id
          description: Unique identifier (UUID) of the user initiating the withdrawal.
          example: f47ac10b-****-****-****-0e02b2c3d479
        - name: X-Platform-ID
          in: header
          required: true
          schema:
            type: string
            format: uuid
            description: >-
              Unique platform identifier (UUID). You receive this during
              onboarding. Must be sent with every API request.
            title: X-Platform-Id
          description: >-
            Unique platform identifier (UUID). You receive this during
            onboarding. Must be sent with every API request.
        - name: X-Signature
          in: header
          required: true
          schema:
            type: string
            description: >-
              HMAC-SHA256 request signature for authentication. Use your
              platform secret key to compute it as: `METHOD + PATH + QUERY +
              BODY_HASH`.
            title: X-Signature
          description: >-
            HMAC-SHA256 request signature for authentication. Use your platform
            secret key to compute it as: `METHOD + PATH + QUERY + BODY_HASH`.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PlatformWithdrawFundCreate'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/CommonResponse_PlatformWithdrawalUserRead_
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
components:
  schemas:
    PlatformWithdrawFundCreate:
      properties:
        amount:
          type: number
          exclusiveMinimum: 0
          title: Amount
          description: Amount to withdraw from the wallet
        memo:
          anyOf:
            - type: string
              maxLength: 255
            - type: 'null'
          title: Memo
          description: Optional note or comment for the withdrawal
        payment_descriptor:
          anyOf:
            - type: string
              maxLength: 50
            - type: 'null'
          title: Payment Descriptor
          description: >-
            Description to be shown in the statement. (Only available for RTP
            now)
        transfer_method:
          $ref: '#/components/schemas/PlatformTransferMethod'
          description: Withdrawal method (e.g., CARD, ACH, SAME_DAY_ACH, RTP)
        bank_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Bank Id
          description: Bank account ID to withdraw to (if using ACH)
        card_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Card Id
          description: Card ID to withdraw to (if using CARD method)
      type: object
      required:
        - amount
        - transfer_method
      title: PlatformWithdrawFundCreate
    CommonResponse_PlatformWithdrawalUserRead_:
      properties:
        success:
          type: boolean
          title: Success
          description: Indicates whether the request was processed successfully.
          default: true
          example: true
        message:
          type: string
          title: Message
          description: >-
            A short, human-readable message describing the result of the
            request.
          default: Success
          example: Operation completed.
        data:
          anyOf:
            - $ref: '#/components/schemas/PlatformWithdrawalUserRead'
            - type: 'null'
          description: The main response payload, if applicable
        queryGeneratedTime:
          anyOf:
            - type: number
            - type: 'null'
          title: Querygeneratedtime
          description: >-
            The Unix timestamp (in seconds) indicating when the response was
            generated.
          default: 1782303609.673092
          example: 1718006400
      type: object
      title: CommonResponse[PlatformWithdrawalUserRead]
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    PlatformTransferMethod:
      type: string
      enum:
        - bank_withdrawal
        - same_day_ach
        - rtp
        - card_withdrawal
      title: PlatformTransferMethod
    PlatformWithdrawalUserRead:
      properties:
        user_id:
          anyOf:
            - type: string
              format: uuid
            - type: 'null'
          title: User Id
          description: Unique identifier (UUID) of the user who requestes the withdrawal.
          example: f47ac10b-****-****-****-0e02b2c3d479
        bank_account_id:
          anyOf:
            - type: string
              format: uuid
            - type: 'null'
          title: Bank Account Id
          description: Bank account to send withdrawal to
        card_id:
          anyOf:
            - type: string
              format: uuid
            - type: 'null'
          title: Card Id
          description: Card to send withdrawal to
        transfer_method:
          anyOf:
            - $ref: '#/components/schemas/PlatformTransferMethod'
            - type: 'null'
          description: Withdrawal method used (e.g., ACH, SAME_DAY_ACH, RTP, CARD)
        withdrawal_payment_id:
          anyOf:
            - type: string
              format: uuid
            - type: 'null'
          title: Withdrawal Payment Id
          description: UUID of the related payment record
        amount:
          anyOf:
            - type: number
            - type: 'null'
          title: Amount
          description: Requested withdrawal amount
        amount_credited:
          anyOf:
            - type: number
            - type: 'null'
          title: Amount Credited
          description: Amount actually credited to the recipient
        processing_fees:
          anyOf:
            - type: number
            - type: 'null'
          title: Processing Fees
          description: Total fee deducted
        memo:
          anyOf:
            - type: string
            - type: 'null'
          title: Memo
          description: Memo or reason attached to the withdrawal
        status:
          anyOf:
            - $ref: '#/components/schemas/WithdrawalStatus'
            - type: 'null'
          description: Status of the withdrawal request
        failed_reason:
          anyOf:
            - type: string
            - type: 'null'
          title: Failed Reason
          description: Reason for failure, if any
      type: object
      title: PlatformWithdrawalUserRead
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
    WithdrawalStatus:
      type: string
      enum:
        - pending
        - processed
        - completed
        - failed
        - rejected
        - returned
        - on_hold
        - canceled
      title: WithdrawalStatus

````