Skip to main content
POST
Solicitar saque
POST /withdrawals Faz parte do recurso Saques — os estados e o fluxo de aprovação estão lá. Solicita a retirada do saldo de um recebedor. O saque não sai na hora: ele entra como requested e espera aprovação.
Solicitar não é sacar. A resposta 201 confirma que o pedido foi registrado, não que o dinheiro saiu. O caminho é requested → approved → processing → paid, e cada passo depende da aprovação e do processamento bancário. Quem tratar o 201 como “pago” contabiliza errado.
O amount é o que sai do saldo; o netAmount é o que chega na conta. A taxa é descontada do valor pedido, não somada a ele — pedir 300000 com taxa de 4867 deposita 295133. Os três campos vêm na resposta, e é o netAmount que o recebedor vê no extrato bancário.
O saldo é agregado por moeda. O pedido é por recipientId, não por carteira: a Z2Pay soma todas as carteiras daquele recebedor na moeda indicada (BRL por padrão). Você não escolhe de qual carteira sai.
Só o saldo disponível conta. O que está a liberar ou bloqueado não entra, e pedir mais do que há disponível é recusado. Consulte GET /wallets/owner/{ownerId}/balance antes — é o campo de sacável que responde quanto cabe no pedido.
Há um mínimo, e as taxas são da conta. Os três valores vêm em GET /withdrawals/config: taxa percentual, taxa fixa e valor mínimo. Abaixo do mínimo, o pedido é recusado.
A conta de destino não se escolhe aqui. O bankAccountId da resposta é a conta bancária cadastrada do recebedor — para mudá-la, o caminho é atualizar o recebedor.

Exemplo

Resposta 201

Authorizations

x-api-key
string
header
required

API Key da Credential (gerada no Backoffice)

Headers

Idempotency-Key
string

Chave única para garantir idempotência da requisição

Body

application/json
recipientId
string
required

ID do recebedor cuja carteira será sacada.

Minimum string length: 1
amount
integer
required

Valor do saque, em centavos.

Required range: x >= 1
currency
enum<string>

Código de moeda ISO 4217. Hoje o único valor aceito é 'BRL', que também é o padrão quando o campo é omitido.

Available options:
BRL

Response

Saque solicitado

id
string

Identificador único do registro.

amount
integer

Valor bruto em centavos

currency
string

Moeda no padrão ISO 4217 (ex.: BRL).

fee
integer

Taxa em centavos

netAmount
integer

Valor líquido (amount - fee) em centavos

status
string

Situação do saque. Valores: requested, approved, processing, paid, cancelled, rejected, failed.

bankAccountId
string | null

ID da conta bancária de destino do saque.

paidAt
string<date-time> | null

Data e hora em que o pagamento foi liquidado (ISO 8601).

statusHistory
object[] | null

Histórico de mudanças de status do saque.

createdAt
string<date-time>

Data e hora de criação do registro (ISO 8601).

updatedAt
string<date-time>

Data e hora da última atualização do registro (ISO 8601).