Visão geral
O módulo de Saques na API Selectwin permite gerenciar todas as operações relacionadas à transferência de fundos de sua conta para carteiras específicas. Este módulo é essencial para o controle de flux
Visão Geral
O módulo de Saques na API Selectwin permite gerenciar todas as operações relacionadas à transferência de fundos de sua conta para carteiras específicas. Este módulo é essencial para o controle de fluxo de caixa, permitindo solicitar, acompanhar e gerenciar saques de forma eficiente e segura.
Precauções
ATENÇÃO! Por favor, leia estas informações importantes antes de usar este módulo.
- Segurança: Mantenha as credenciais de acesso à API seguras e implemente controles de acesso adequados para operações de saque.
- Verificação de Saldo: Sempre verifique o saldo disponível antes de solicitar um saque.
- Valores Mínimos: Respeite os valores mínimos estabelecidos pelo seu plano de taxas.
- Tratamento de Erros: Implemente tratamento adequado para falhas em saques ou transações financeiras.
Operações Disponíveis
Base URL: https://api.selectwin.io/v1. Header de autenticação: SelectKey (sk_test_* / sk_live_*).
| Método HTTP | Endpoint | Escopo | Descrição | Documentação |
|---|---|---|---|---|
| POST | /v1/withdrawals | withdrawals:create | Solicitar um novo saque | Criar Saque |
| GET | /v1/withdrawals | withdrawals:list | Listar saques realizados | Listar Saques |
| GET | /v1/withdrawals/{withdrawalId} | withdrawals:read | Consultar um saque específico | Consultar Saque |
Para consultar o saldo disponível antes de sacar, use Consultar Saldo (
GET /v1/balance).
Objeto de Saque
O objeto de saque representa uma solicitação de transferência de fundos da sua conta para uma carteira cadastrada. Respostas de recurso (create/read) incluem merchant + _links + o snapshot receivingBankAccount no root. Os itens da listagem (/v1/withdrawals) não carregam receivingBankAccount nem _links por item.
{
"id": "cash_01hqzvabc",
"walletId": "wall_01hqzvabc",
"amount": 45000,
"fee": 15,
"status": "pending",
"method": "bankTransfer",
"currency": "BRL",
"transferCode": null,
"paidAt": null,
"approvedAt": null,
"createdAt": "2025-02-07T00:12:33.000Z",
"updatedAt": "2025-02-07T00:12:33.000Z",
"receivingBankAccount": {
"holderName": "João Santos",
"document": "12345678901",
"bankCode": "260",
"bankName": null,
"routingNumber": "0001",
"accountNumber": "11111111-5",
"type": "checking",
"pixKey": null
},
"merchant": {
"name": "Seller Name",
"merchantId": "bus_1234567890",
"isSubAccount": false
},
"_links": {
"self": {
"href": "https://api.selectwin.io/v1/withdrawals/cash_01hqzvabc",
"method": "GET",
"description": "Read a withdrawal."
}
}
}Parâmetros para Criação de Saque
| Parâmetro | Tipo | Obrigatório | Descrição | Exemplo |
|---|---|---|---|---|
walletId | string | Sim | Id da carteira (wall_*) que receberá o valor | "wall_01hqzvabc" |
amount | integer | Sim | Valor do saque em centavos (mínimo 1; e ≥ valor mínimo do plano) | 45000 |
Atributos do Saque (Resposta)
| Atributo | Tipo | Descrição |
|---|---|---|
id | string | cash_* |
walletId | string | null | Carteira de destino (wall_*) |
amount | number | Valor em centavos |
fee | number | Taxa do saque em centavos |
status | string | pending/processing/confirmed/approved/analysis/refused/canceled/failed |
method | string | null | bankTransfer ou pixTransfer |
currency | string | BRL |
transferCode | string | null | Código de referência da transferência |
paidAt / approvedAt | string | null | Timestamps |
createdAt / updatedAt | string | Timestamps ISO 8601 |
receivingBankAccount | object | null | Snapshot dos dados bancários no momento do saque (somente em read/create) — holderName, document, bankCode, bankName, routingNumber, accountNumber, type, pixKey |
merchant | object | Merchant (somente em respostas de recurso) |
_links | object | HATEOAS (somente em respostas de recurso) |
Saque automático (auto-cashout): regras recorrentes de saque por percentual estão disponíveis na API pública em
/v1/withdrawals/auto(CRUD: POST/GET/PUT/DELETE, escoposwithdrawals:*) — recursocaa_*. Esta referência cobre os saques manuais (/v1/withdrawals).
- Step-up (sessão de dashboard): criar (
POST) e alterar (PUT) uma ordem de saque automático exigem autenticação recente + fator forte (TOTP/código de backup) re-provado viaPOST /v1/authentication/step-up— a mesma barra do saque manual, porque a ordem executa exatamente o mesmo saque, todo dia. Sem isso:401 stepUpRequired. Chamadas com API key não passam por step-up. ODELETEnão exige step-up: é o freio para parar a ordem.- Notificação: criar ou alterar a ordem avisa owners/admins (in-app + e-mail + push) com o destino mascarado e o percentual.
Status do Saque
| Status | Descrição |
|---|---|
pending | Saque aguardando processamento |
processing | Saque em processamento |
analysis | Saque em análise |
approved / confirmed | Saque aprovado/confirmado |
paid | Saque concluído com sucesso |
refused / failed | Saque recusado/falhou |
canceled | Saque cancelado |
Fluxo de Status do Saque
O saldo disponível é debitado no momento da criação do saque (débito antes do envio ao provedor, para evitar gasto duplicado). Uma falha posterior reverte o débito.
Webhooks Acionados
| Evento | Descrição |
|---|---|
withdrawal.created | Acionado quando o saque é criado. |
withdrawal.pending | Acionado quando o saque entra em estado pendente (emitido junto do created). |
withdrawal.processing | Acionado quando o saque está em processamento. |
withdrawal.confirmed | Acionado quando o saque é aprovado/confirmado (status interno approved/confirmed). |
withdrawal.refused | Acionado quando o saque é recusado (status interno failed). |
withdrawal.canceled | Acionado quando o saque é cancelado. |
O nome do evento de webhook difere do status interno:
approved/confirmed→withdrawal.confirmed;failed→withdrawal.refused.
Casos de Uso
- Gestão de Fluxo de Caixa: Monitore saques para controle de saídas e planejamento financeiro.
- Automação de Saques: Implemente rotinas automatizadas para solicitar saques quando o saldo disponível atingir determinados valores.
- Relatórios de Saques: Desenvolva dashboards e relatórios personalizados com base no histórico de saques.
- Auditoria de Transferências: Acompanhe o histórico completo de saques para fins de auditoria e compliance.
Melhores Práticas
- Verificar Saldo Disponível: Sempre consulte o saldo disponível antes de solicitar um saque.
- Verificar Taxas: Esteja ciente das taxas aplicáveis ao seu plano antes de solicitar um saque.
- Paginação de Resultados: Use parâmetros de paginação para consultas de grandes volumes de saques.
- Filtros Eficientes: Utilize filtros específicos nas consultas para obter apenas os saques relevantes.
- Monitoramento Regular: Acompanhe regularmente o status dos saques para identificar qualquer problema.
- Tratamento de Webhooks: Implemente handlers adequados para os eventos de webhook relacionados a saques.
Integração com Outros Módulos
- O módulo de Saques se integra com o módulo de Finanças para verificação de saldo disponível.
- Utilize o módulo de Webhooks para receber notificações automáticas sobre mudanças de status em saques.
How is this guide?