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

# Solicitar transferência

> Solicita uma transferência (saque) via PIX para a chave informada. O valor é debitado do saldo disponível na sua conta. Use `discount_fee` para controlar se a taxa é descontada do valor transferido (padrão) ou acrescentada ao total debitado.



## OpenAPI

````yaml POST /withdrawals
openapi: 3.1.0
info:
  title: Pluggou API
  description: API de intermediação de pagamentos da Pluggou
  version: 1.0.0
servers:
  - url: https://api.pluggoutech.com/api
security:
  - publicKey: []
    secretKey: []
paths:
  /withdrawals:
    post:
      tags:
        - Transferências
      summary: Solicitar transferência
      description: >-
        Solicita uma transferência (saque) via PIX para a chave informada. O
        valor é debitado do saldo disponível na sua conta. Use `discount_fee`
        para controlar se a taxa é descontada do valor transferido (padrão) ou
        acrescentada ao total debitado.
      operationId: createWithdrawal
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateWithdrawalRequest'
            example:
              amount: 50000
              key_type: cpf
              key_value: '12345678909'
            examples:
              padrao:
                summary: Saque com taxa descontada (padrão)
                value:
                  amount: 50000
                  key_type: cpf
                  key_value: '12345678909'
              taxa_acrescida:
                summary: Saque com taxa acrescentada ao total
                value:
                  amount: 50000
                  key_type: cpf
                  key_value: '12345678909'
                  discount_fee: false
      responses:
        '201':
          description: Saque solicitado com sucesso
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateWithdrawalSuccess'
              example:
                success: true
                message: Saque solicitado e processado com sucesso!
                data:
                  id: e5f6a1b2-c3d4-7890-efgh-4567890abcde
                  amount: 50000
                  liquid_amount: 50000
                  pix_key_type: cpf
                  pix_key: '12345678909'
                  status: pending
                  created_at: '2026-01-29 14:58:00'
        '400':
          description: Erro de regra de negócio
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                saldo_insuficiente:
                  summary: Saldo insuficiente
                  value:
                    success: false
                    message: Saldo insuficiente para saque.
                    data:
                      available_balance: 30000
                      requested_amount: 50000
                valor_minimo:
                  summary: Valor mínimo não atingido
                  value:
                    success: false
                    message: O valor mínimo para saque é R$ 10,00.
                    data: null
                limite_por_solicitacao:
                  summary: Limite por solicitação excedido
                  value:
                    success: false
                    message: >-
                      O valor solicitado ultrapassa o limite por solicitação de
                      saque.
                    data:
                      valid: false
                      limit: 500000
                      requested: 600000
                limite_diario:
                  summary: Limite diário excedido
                  value:
                    success: false
                    message: O valor solicitado ultrapassa o limite diário de saques.
                    data:
                      valid: false
                      daily_limit: 1000000
                      withdrawn_today: 800000
                      remaining: 200000
                      requested: 500000
                valor_liquido_zero:
                  summary: Valor líquido zero após taxas
                  value:
                    success: false
                    message: O valor do saque após as taxas deve ser maior que R$ 0,00.
                    data: null
                fora_horario:
                  summary: Fora do horário de funcionamento
                  value:
                    success: false
                    message: >-
                      Saques estão disponíveis apenas das 09:00 às 22:00. Tente
                      novamente dentro do horário.
                    data: null
        '401':
          description: Erro de autenticação
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthErrorResponse'
              examples:
                credenciais_ausentes:
                  summary: Credenciais ausentes
                  value:
                    error: Credenciais inválidas
                    message: Chave pública e chave privada são obrigatórias
                credenciais_invalidas:
                  summary: Credenciais inválidas
                  value:
                    error: Credenciais inválidas
                    message: Chave não encontrada ou inativa
        '403':
          description: Erro de permissão
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                credencial_sem_permissao:
                  summary: Sem permissão de cashout
                  value:
                    success: false
                    message: >-
                      Esta credencial não tem permissão para realizar esta
                      operação.
                    data: null
                conta_nao_aprovada:
                  summary: Conta não aprovada
                  value:
                    success: false
                    message: Sua conta precisa estar aprovada para solicitar saques.
                    data: null
                conta_bloqueada:
                  summary: Conta bloqueada
                  value:
                    success: false
                    message: Sua conta está bloqueada. Entre em contato com o suporte.
                    data: null
        '422':
          description: Erro de validação
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationErrorResponse'
              example:
                success: false
                message: Erro de validação nos dados fornecidos
                data:
                  errors:
                    amount:
                      - O valor mínimo para saque é R$ 10,00.
                    key_value:
                      - CPF inválido.
                    key_type:
                      - >-
                        O tipo de chave deve ser: cpf, cnpj, email, phone ou
                        random.
        '500':
          description: Erro interno do servidor
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                erro_adquirente:
                  summary: Erro ao processar na adquirente
                  value:
                    success: false
                    message: Erro ao processar o saque. Tente novamente mais tarde.
                    data: null
                erro_interno:
                  summary: Erro interno
                  value:
                    success: false
                    message: Ocorreu um erro ao processar a solicitação de saque.
                    data: null
components:
  schemas:
    CreateWithdrawalRequest:
      type: object
      required:
        - amount
        - key_value
      properties:
        amount:
          type: integer
          description: 'Valor do saque em centavos. Mínimo: 1000 (R$ 10,00).'
          example: 50000
        key_type:
          type: string
          enum:
            - cpf
            - cnpj
            - email
            - phone
            - random
          default: cpf
          description: Tipo da chave PIX de destino. Se omitido, assume `cpf` como padrão.
        key_value:
          type: string
          description: >-
            Valor da chave PIX de destino. O formato deve corresponder ao
            `key_type` informado.
          example: '12345678909'
        discount_fee:
          type: boolean
          default: true
          description: >-
            Define como a taxa de saque é aplicada. Com `true` (padrão), a taxa
            é descontada do valor transferido (`liquid_amount = amount -
            taxas`). Com `false`, a taxa é acrescentada ao total debitado da
            conta e o destinatário recebe exatamente o `amount` solicitado
            (`liquid_amount = amount`).
    CreateWithdrawalSuccess:
      type: object
      properties:
        success:
          type: boolean
          description: Indica se a operação foi bem-sucedida.
        message:
          type: string
          description: Mensagem descritiva do resultado.
        data:
          type: object
          properties:
            id:
              type: string
              format: uuid
              description: Identificador único do saque (UUID).
            amount:
              type: integer
              description: Valor solicitado em centavos.
            liquid_amount:
              type: integer
              description: >-
                Valor líquido transferido em centavos. Com `discount_fee: true`
                (padrão), é o `amount` menos as taxas. Com `discount_fee:
                false`, é igual ao `amount` solicitado.
            pix_key_type:
              type: string
              description: Tipo da chave PIX utilizada.
            pix_key:
              type: string
              description: Valor da chave PIX de destino.
            status:
              type: string
              description: Status inicial do saque.
              enum:
                - pending
                - completed
                - failed
                - canceled
            created_at:
              type: string
              description: Data/hora de criação no formato `YYYY-MM-DD HH:mm:ss`.
    ErrorResponse:
      type: object
      properties:
        success:
          type: boolean
          description: Sempre `false` em caso de erro.
        message:
          type: string
          description: Mensagem descritiva do erro.
        data:
          type: object
          nullable: true
          description: Sempre `null` em erros simples.
    AuthErrorResponse:
      type: object
      properties:
        error:
          type: string
          description: Tipo do erro de autenticação.
        message:
          type: string
          description: Mensagem descritiva do erro.
    ValidationErrorResponse:
      type: object
      properties:
        success:
          type: boolean
          description: Sempre `false` em caso de erro.
        message:
          type: string
          description: Mensagem descritiva do erro.
        data:
          type: object
          properties:
            errors:
              type: object
              description: >-
                Objeto onde cada chave é o nome do campo e o valor é um array
                com as mensagens de erro.
              additionalProperties:
                type: array
                items:
                  type: string
  securitySchemes:
    publicKey:
      type: apiKey
      in: header
      name: X-Public-Key
      description: 'Sua chave pública de acesso à API. Ex: `pk_live_abc123def456...`'
    secretKey:
      type: apiKey
      in: header
      name: X-Secret-Key
      description: 'Sua chave secreta de acesso à API. Ex: `sk_live_xyz789ghi012...`'

````