# Enviar Pix por chave (/docs/pix-processamento/endpoints/withdrawals/post_withdraw)

## POST /withdraw

`POST https://api.payzu.processamento.com/v1/withdraw`

Envie um **cash out** Pix para a chave Pix especificada.

Guia: Enviar Pix (/docs/pix-processamento/tutoriais/send-pix)

### Body params

| Field | Type | Required | Details |
| --- | --- | --- | --- |
| `amount` | number | yes | Valor do saque. — minimum: 0.01 |
| `pixKey` | string | yes | Chave Pix de destino. |
| `pixType` | string | yes | Tipo da chave Pix. — `cpf`, `cnpj`, `phone`, `email`, `evp` |
| `callbackUrl` | string | no | URL de webhook para atualizações de status. — format: uri |
| `clientReference` | string | no | Referência externa para este saque. — maxLength: 64 |
| `description` | string | no | Descrição opcional. |
| `virtualAccount` | string | no | Subconta para separar lojas ou filiais. — minLength: 1; maxLength: 50 |

### Responses

**200** Saque criado

| Field | Type | Required | Details |
| --- | --- | --- | --- |
| `id` | string | no | Identificador da transação na PayZu. |
| `status` | string | no | Status atual da transação. — `PENDING`, `COMPLETED`, `CANCELED`, `WAITING_FOR_REFUND`, `REFUNDED`, `EXPIRED`, `ERROR` |
| `amount` | number | no | Valor da transação, antes da taxa. |
| `type` | string | no | Tipo da transação. — `DEPOSIT`, `WITHDRAW`, `COMMISSION` |
| `qrCodeText` | string | null | no | Código copia e cola do Pix. |
| `qrCodeBase64` | string | null | no | Imagem PNG do QR Code em base64, sem o prefixo data:. |
| `qrCodeUrl` | string | null | no | Rota autenticada que devolve o PNG do QR Code. |
| `generatedName` | string | null | no | Nome usado para montar a cobrança. |
| `generatedDocument` | string | null | no | CPF ou CNPJ usado como devedor na cobrança. |
| `generatedEmail` | string | null | no | E-mail usado para montar a cobrança. |
| `payerName` | string | null | no | Nome do titular da conta que enviou o Pix, como informado pela instituição de origem. |
| `payerDocument` | string | null | no | CPF ou CNPJ de quem enviou o Pix, informado pela instituição de origem. |
| `payerInstitutionIspb` | string | null | no | Código ISPB da instituição de onde saiu o Pix. |
| `payerInstitutionName` | string | null | no | Nome da instituição de onde saiu o Pix. |
| `payerAccountNumber` | string | null | no | Conta PayZu do pagador. |
| `serviceFeeCharged` | number | null | no | Tarifa PayZu cobrada na operação, em reais. Pode ter mais de duas casas decimais — não arredonde ao conciliar. |
| `withdrawPixKey` | string | null | no | Chave Pix de destino do saque, já normalizada. |
| `withdrawPixType` | string | null | no | Tipo da chave de destino do saque, sendo evp a chave aleatória. — `cpf`, `cnpj`, `email`, `phone`, `evp`, `null` |
| `receiverName` | string | null | no | Nome do titular da conta que recebe. |
| `receiverDocument` | string | null | no | CPF ou CNPJ de quem recebe. |
| `receiverInstitutionIspb` | string | null | no | Código ISPB da instituição que recebe o Pix. |
| `receiverInstitutionName` | string | null | no | Nome da instituição que recebe o Pix. |
| `receiverAccountNumber` | string | null | no | Conta PayZu do recebedor. |
| `endToEndId` | string | null | no | Identificador do Pix no arranjo do Bacen, usado para rastrear a liquidação e pedir devolução. |
| `createdAt` | string | no | Data e hora do registro da transação. |
| `updatedAt` | string | no | Data e hora da última alteração. |
| `paidAt` | string | null | no | Data e hora da liquidação do Pix, informada pela instituição. |
| `clientReference` | string | null | no | Seu identificador da transação, devolvido em consultas e callbacks. |
| `refundEndToEndId` | string | null | no | ID end-to-end da transação de estorno |
| `refundAmount` | number | null | no | Valor estornado. |
| `refundStatus` | string | null | no | Status do estorno (PENDING, COMPLETED, CANCELED, WAITING_FOR_REFUND, REFUNDED, EXPIRED, ERROR) — `PENDING`, `COMPLETED`, `CANCELED`, `null` |
| `refundReason` | string | null | no | Motivo do estorno — `CUSTOMER_REQUEST`, `INFRACTION`, `null` |
| `refundDescription` | string | null | no | Descrição do estorno |
| `refundedAt` | string | null | no | Data e hora em que o estorno foi processado |
| `cancellationReason` | string | null | no | Motivo do cancelamento (se cancelada) |
| `virtualAccount` | string | null | no | Subconta virtual informada na criação. — maxLength: 50 |
| `method` | string | no | Método/rail da transação. — `PIX`, `INTERNAL_TRANSFER` |

**400** Bad Request

| Field | Type | Required | Details |
| --- | --- | --- | --- |
| `status` | string | yes | Marcador fixo de resposta de erro. |
| `error` | string | yes | Nome do status HTTP correspondente. |
| `errorCode` | string | yes | Código de erro estável e legível por máquina, quando disponível. |
| `message` | string | yes | Mensagem de erro legível. |
| `statusCode` | integer | yes | Código de status HTTP. |
| `requestId` | string | yes | ID único de correlação da requisição (cuid). |
| `details` | object[] | no | Erros de validação por campo, quando aplicável. |
| `details.field` | string | yes | Caminho do campo rejeitado na validação, sem a barra inicial. |
| `details.message` | string | yes | Motivo da rejeição daquele campo, em português. |
| `retryAfterSeconds` | integer | no | Segundos a aguardar antes de tentar novamente. |

**401** Unauthorized

| Field | Type | Required | Details |
| --- | --- | --- | --- |
| `status` | string | yes | Marcador fixo de resposta de erro. |
| `error` | string | yes | Nome do status HTTP correspondente. |
| `errorCode` | string | yes | Código de erro estável e legível por máquina, quando disponível. |
| `message` | string | yes | Mensagem de erro legível. |
| `statusCode` | integer | yes | Código de status HTTP. |
| `requestId` | string | yes | ID único de correlação da requisição (cuid). |
| `details` | object[] | no | Erros de validação por campo, quando aplicável. |
| `details.field` | string | yes | Caminho do campo rejeitado na validação, sem a barra inicial. |
| `details.message` | string | yes | Motivo da rejeição daquele campo, em português. |
| `retryAfterSeconds` | integer | no | Segundos a aguardar antes de tentar novamente. |

**403** Operação não permitida

| Field | Type | Required | Details |
| --- | --- | --- | --- |
| `status` | string | yes | Marcador fixo de resposta de erro. |
| `error` | string | yes | Nome do status HTTP correspondente. |
| `errorCode` | string | yes | Código de erro estável e legível por máquina, quando disponível. |
| `message` | string | yes | Mensagem de erro legível. |
| `statusCode` | integer | yes | Código de status HTTP. |
| `requestId` | string | yes | ID único de correlação da requisição (cuid). |
| `details` | object[] | no | Erros de validação por campo, quando aplicável. |
| `details.field` | string | yes | Caminho do campo rejeitado na validação, sem a barra inicial. |
| `details.message` | string | yes | Motivo da rejeição daquele campo, em português. |
| `retryAfterSeconds` | integer | no | Segundos a aguardar antes de tentar novamente. |

**422** Operação recusada

| Field | Type | Required | Details |
| --- | --- | --- | --- |
| `status` | string | yes | Marcador fixo de resposta de erro. |
| `error` | string | yes | Nome do status HTTP correspondente. |
| `errorCode` | string | yes | Código de erro estável e legível por máquina, quando disponível. |
| `message` | string | yes | Mensagem de erro legível. |
| `statusCode` | integer | yes | Código de status HTTP. |
| `requestId` | string | yes | ID único de correlação da requisição (cuid). |
| `details` | object[] | no | Erros de validação por campo, quando aplicável. |
| `details.field` | string | yes | Caminho do campo rejeitado na validação, sem a barra inicial. |
| `details.message` | string | yes | Motivo da rejeição daquele campo, em português. |
| `retryAfterSeconds` | integer | no | Segundos a aguardar antes de tentar novamente. |

**424** Falha na instituição financeira

| Field | Type | Required | Details |
| --- | --- | --- | --- |
| `status` | string | yes | Marcador fixo de resposta de erro. |
| `error` | string | yes | Nome do status HTTP correspondente. |
| `errorCode` | string | yes | Código de erro estável e legível por máquina, quando disponível. |
| `message` | string | yes | Mensagem de erro legível. |
| `statusCode` | integer | yes | Código de status HTTP. |
| `requestId` | string | yes | ID único de correlação da requisição (cuid). |
| `details` | object[] | no | Erros de validação por campo, quando aplicável. |
| `details.field` | string | yes | Caminho do campo rejeitado na validação, sem a barra inicial. |
| `details.message` | string | yes | Motivo da rejeição daquele campo, em português. |
| `retryAfterSeconds` | integer | no | Segundos a aguardar antes de tentar novamente. |