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

# Criar Saque

> Crie um novo saque para transferir dinheiro via PIX

<RequestExample>
  ```bash cURL theme={null}
  curl -X POST 'https://api.eyowallet.ru/api/v1/withdraw/create' \
    -H 'X-API-Key: sua_api_key' \
    -H 'Content-Type: application/json' \
    -d '{
      "amount": 100.00,
      "pixKey": "usuario@example.com",
      "pixKeyType": "EMAIL",
      "description": "Saque para conta pessoal"
    }'
  ```
</RequestExample>

<ResponseExample>
  ```json Success theme={null}
  {
    "success": true,
    "message": "Saque processado com sucesso",
    "data": {
      "id": "withdraw_abc123",
      "value": 10000,
      "fee": 50,
      "sent": 9950,
      "status": "COMPLETED",
      "pixKey": "usuario@example.com",
      "createdAt": "2024-01-15T10:30:00Z"
    }
  }
  ```
</ResponseExample>

### Parâmetros

<ParamField body="amount" type="number" required>
  Valor do saque em reais. Valor mínimo: R\$ 5,00 (500 centavos).
</ParamField>

<ParamField body="pixKey" type="string" required>
  Chave PIX do destinatário (CPF, CNPJ, e-mail, telefone ou chave aleatória).
</ParamField>

<ParamField body="pixKeyType" type="string" required>
  Tipo da chave PIX: `CPF`, `CNPJ`, `EMAIL`, `PHONE`, ou `RANDOM`.
</ParamField>

<ParamField body="description" type="string">
  Descrição opcional do saque.
</ParamField>

<ParamField body="coverFee" default="false" type="boolean">
  Se `true`, o valor informado é o valor líquido que será enviado. A taxa será deduzida do saldo adicional.
</ParamField>

<ParamField body="splitUser" type="string">
  Email de outro usuário Eyo Wallet para dividir o saque. O valor do split será enviado via PIX para o usuário especificado.
</ParamField>

<ParamField body="splitTax" default="50" type="number">
  Porcentagem do valor a ser transferida para o usuário de split. Valor entre 1 e 100. Padrão: 50% (divisão igualitária).
</ParamField>

<Warning>
  O saldo do usuário será debitado imediatamente ao criar o saque. Certifique-se de que há saldo suficiente antes de criar um saque.
</Warning>

### Status do Saque

Os saques podem ter os seguintes status:

| Status      | Descrição                              |
| ----------- | -------------------------------------- |
| `PENDING`   | Saque criado, aguardando processamento |
| `COMPLETED` | Saque processado com sucesso           |
| `FAILED`    | Saque falhou                           |

<Note>
  A maioria dos saques é processada instantaneamente e ficam com status `COMPLETED` imediatamente após a criação.
</Note>

### Permissões Necessárias

Esta rota requer a permissão `write:withdraw:create`.

### Rate Limiting

* **10 req/s (600 req/min) por API Key**


## OpenAPI

````yaml POST /api/v1/withdraw/create
openapi: 3.1.0
info:
  title: Eyo Wallet API
  description: >-
    API para integração com a Eyo Wallet - Plataforma de pagamentos PIX para
    desenvolvedores e empresas
  version: 1.0.0
  contact:
    name: Eyo Wallet
    url: https://eyowallet.ru
servers:
  - url: https://api.eyowallet.ru
    description: Servidor de Produção
security:
  - apiKeyAuth: []
tags:
  - name: Payments
    description: Endpoints para criar e gerenciar pagamentos PIX
  - name: Withdraws
    description: Endpoints para criar e gerenciar saques via PIX
  - name: Transfers
    description: Endpoints para transferências internas entre contas Eyo Wallet
  - name: User
    description: Endpoints para informações do usuário e configurações
paths:
  /api/v1/withdraw/create:
    post:
      tags:
        - Withdraws
      summary: Criar Saque
      description: >-
        Cria um novo saque para transferir dinheiro via PIX. O saldo é debitado
        imediatamente.
      operationId: createWithdraw
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateWithdrawRequest'
      responses:
        '200':
          description: Saque criado com sucesso
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateWithdrawResponse'
        '400':
          description: Erro de validação ou saldo insuficiente
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    CreateWithdrawRequest:
      type: object
      required:
        - amount
        - pixKey
        - pixKeyType
      properties:
        amount:
          type: number
          description: 'Valor do saque em reais. Mínimo: R$ 7,00'
          minimum: 7
        pixKey:
          type: string
          description: Chave PIX do destinatário
        pixKeyType:
          type: string
          enum:
            - CPF
            - CNPJ
            - EMAIL
            - PHONE
            - RANDOM
          description: Tipo da chave PIX
        description:
          type: string
          description: Descrição opcional do saque
        coverFee:
          type: boolean
          default: false
          description: Se true, o valor informado é o valor líquido que será enviado
        verificationCode:
          type: string
          description: >-
            Código de verificação se a segurança de transferências estiver
            ativada
        splitUser:
          type: string
          description: Email de outro usuário Eyo Wallet para dividir o saque
        splitTax:
          type: number
          default: 50
          minimum: 1
          maximum: 100
          description: Porcentagem do valor a ser transferida para o usuário de split
    CreateWithdrawResponse:
      type: object
      properties:
        success:
          type: boolean
        message:
          type: string
        data:
          type: object
          properties:
            id:
              type: string
            value:
              type: integer
              description: Valor total em centavos
            fee:
              type: integer
              description: Taxa em centavos
            sent:
              type: integer
              description: Valor líquido enviado em centavos
            status:
              type: string
              enum:
                - PENDING
                - COMPLETED
                - FAILED
            pixKey:
              type: string
            createdAt:
              type: string
              format: date-time
    Error:
      type: object
      properties:
        success:
          type: boolean
          const: false
        error:
          type: string
          description: Mensagem de erro
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key
      description: API Key obtida no painel da Eyo Wallet

````