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

# Register Withdrawal Address

> Register a withdrawal destination address for your Fyatu business wallet. POST /account/withdrawal-address.

## Overview

Register a withdrawal address for receiving USDT or USDC payouts on supported networks. Only one withdrawal address can be active at a time. If an address already exists, returns the existing address.

## Supported Currencies

| Currency | Description          |
| -------- | -------------------- |
| `USDT`   | Tether USD (default) |
| `USDC`   | USD Coin             |

## Supported Networks

| Network     | Address Format                  | Description                   |
| ----------- | ------------------------------- | ----------------------------- |
| `TRON`      | Starts with `T`, 34 characters  | TRC20 - Low fees, recommended |
| `ETH`       | Starts with `0x`, 42 characters | Ethereum mainnet              |
| `BSC`       | Starts with `0x`, 42 characters | BNB Smart Chain               |
| `POLYGON`   | Starts with `0x`, 42 characters | Polygon network               |
| `ARBITRUM`  | Starts with `0x`, 42 characters | Arbitrum One                  |
| `AVALANCHE` | Starts with `0x`, 42 characters | Avalanche C-Chain             |

### Request Body

| Field      | Type   | Required | Description                                                           |
| ---------- | ------ | -------- | --------------------------------------------------------------------- |
| `address`  | string | Yes      | Crypto wallet address                                                 |
| `currency` | string | No       | `USDT` (default) or `USDC`                                            |
| `network`  | string | No       | `TRON` (default), `ETH`, `BSC`, `POLYGON`, `ARBITRUM`, or `AVALANCHE` |

### Example Request

```javascript theme={null}
const response = await fetch('https://api.fyatu.com/api/v3/account/withdrawal-address', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${accessToken}`,
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    address: 'TYourTRC20AddressHere...',
    currency: 'USDT',
    network: 'TRON'
  })
});
```

<Note>
  If a withdrawal address already exists, this endpoint returns the existing address. To set a new address, you must first delete the current one.
</Note>

## Deleting Withdrawal Address

To change your withdrawal address, use `DELETE /account/withdrawal-address` to remove the current one first.

```javascript theme={null}
const response = await fetch('https://api.fyatu.com/api/v3/account/withdrawal-address', {
  method: 'DELETE',
  headers: {
    'Authorization': `Bearer ${accessToken}`
  }
});
```

<Warning>
  Pending withdrawals will fail if you delete your withdrawal address. Ensure all withdrawals are complete before changing addresses.
</Warning>

## Verification Status

New withdrawal addresses start as unverified (`isVerified: false`). Verification may be required before processing large withdrawals.


## OpenAPI

````yaml v3/openapi.json POST /account/withdrawal-address
openapi: 3.1.0
info:
  title: FYATU API v3
  description: >-
    FYATU API v3 with JWT authentication for Collections, Payouts, and Card
    Issuing.
  version: 3.0.0
  contact:
    name: FYATU Support
    url: https://fyatu.com
    email: support@fyatu.com
servers:
  - url: https://api.fyatu.com/api/v3
    description: Production
security: []
tags:
  - name: Authentication
    description: JWT token management endpoints
  - name: Account
    description: Business account, wallet, and address management
  - name: Collections
    description: Accept payments from customers via checkout sessions
  - name: Refunds
    description: Issue refunds for completed collections
  - name: Payouts
    description: Send money to Fyatu account holders
  - name: Cardholders
    description: Cardholder management for card issuing programs
  - name: Cards
    description: Issue, fund, freeze, and manage virtual cards
  - name: Webhooks
    description: Webhook configuration and management
paths:
  /account/withdrawal-address:
    post:
      tags:
        - Account
      summary: Register Withdrawal Address
      description: >-
        Register a withdrawal address for USDT or USDC on supported networks. If
        an address already exists, returns the existing address. Delete existing
        address first to set a new one.
      operationId: registerWithdrawalAddress
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WithdrawalAddressRequest'
            example:
              address: TYourTronAddressHere1234567890123
              currency: USDT
              network: TRON
      responses:
        '200':
          description: Withdrawal address registered or retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WithdrawalAddressResponse'
              example:
                success: true
                status: 200
                message: Withdrawal address registered successfully
                data:
                  address: TYourTronAddressHere1234567890123
                  currency: USDT
                  network: TRON
                  isVerified: false
                  addedAt: '2026-01-05T10:30:00+00:00'
                  isNew: true
                meta:
                  requestId: req_abc123def456
                  timestamp: '2026-01-05T10:30:00+00:00'
        '400':
          $ref: '#/components/responses/ValidationError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
      security:
        - BearerAuth: []
components:
  schemas:
    WithdrawalAddressRequest:
      type: object
      required:
        - address
      properties:
        address:
          type: string
          description: Crypto wallet address for withdrawals
        currency:
          type: string
          enum:
            - USDT
            - USDC
          default: USDT
          description: Withdrawal currency
        network:
          type: string
          enum:
            - TRON
            - ETH
            - BSC
            - POLYGON
            - ARBITRUM
            - AVALANCHE
          default: TRON
          description: Blockchain network
    WithdrawalAddressResponse:
      type: object
      properties:
        success:
          type: boolean
          example: true
        status:
          type: integer
          example: 200
        message:
          type: string
        data:
          $ref: '#/components/schemas/WithdrawalAddressData'
        meta:
          $ref: '#/components/schemas/Meta'
    WithdrawalAddressData:
      type: object
      properties:
        address:
          type: string
        network:
          type: string
        currency:
          type: string
          example: USDT
        isVerified:
          type: boolean
        addedAt:
          type: string
          format: date-time
        isNew:
          type: boolean
    Meta:
      type: object
      properties:
        requestId:
          type: string
          description: Unique request ID for tracking
          example: req_abc123def456
        timestamp:
          type: string
          format: date-time
          description: ISO 8601 timestamp of the response
    ErrorResponse:
      type: object
      properties:
        success:
          type: boolean
          example: false
        status:
          type: integer
          example: 401
        message:
          type: string
          example: Invalid credentials
        error:
          $ref: '#/components/schemas/Error'
        meta:
          $ref: '#/components/schemas/Meta'
    Error:
      type: object
      properties:
        code:
          type: string
          description: Error code for programmatic handling
          example: AUTH_INVALID_CREDENTIALS
        details:
          type: array
          items:
            $ref: '#/components/schemas/ValidationError'
          description: Validation error details (for VALIDATION_ERROR)
    ValidationError:
      type: object
      properties:
        field:
          type: string
          description: Field that failed validation
          example: appId
        message:
          type: string
          description: Validation error message
          example: AppId is required
  responses:
    ValidationError:
      description: Validation failed
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            success: false
            status: 400
            message: Validation failed
            error:
              code: VALIDATION_ERROR
              details:
                - field: currency
                  message: Currency is required
            meta:
              requestId: req_abc123
              timestamp: '2026-01-05T10:30:00+00:00'
    Unauthorized:
      description: Authentication required or token invalid
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            success: false
            status: 401
            message: Unable to identify business
            error:
              code: AUTH_TOKEN_INVALID
            meta:
              requestId: req_abc123
              timestamp: '2026-01-05T10:30:00+00:00'
    NotFound:
      description: Resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            success: false
            status: 404
            message: Wallet not found
            error:
              code: RESOURCE_NOT_FOUND
            meta:
              requestId: req_abc123
              timestamp: '2026-01-05T10:30:00+00:00'
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: JWT access token obtained from /auth/token

````