# 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
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/withdrawalswithdrawals:createSolicitar um novo saque Criar Saque GET /v1/withdrawalswithdrawals:listListar saques realizados Listar Saques GET /v1/withdrawals/{withdrawalId}withdrawals:readConsultar um saque específico Consultar Saque
# 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 walletIdstring Sim Id da carteira (wall_*) que receberá o valor "wall_01hqzvabc"amountinteger Sim Valor do saque em centavos (mínimo 1; e ≥ valor mínimo do plano) 45000
# Atributos do Saque (Resposta)
Atributo Tipo Descrição idstring cash_*walletIdstring | null Carteira de destino (wall_*) amountnumber Valor em centavos feenumber Taxa do saque em centavos statusstring pending/processing/confirmed/approved/analysis/refused/canceled/failed methodstring | null bankTransfer ou pixTransfercurrencystring BRLtransferCodestring | null Código de referência da transferência paidAt / approvedAtstring | null Timestamps createdAt / updatedAtstring Timestamps ISO 8601 receivingBankAccountobject | null Snapshot dos dados bancários no momento do saque (somente em read/create) — holderName, document, bankCode, bankName, routingNumber, accountNumber, type, pixKey merchantobject Merchant (somente em respostas de recurso) _linksobject HATEOAS (somente em respostas de recurso)
# Status do Saque
Status Descrição pendingSaque aguardando processamento processingSaque em processamento analysisSaque em análise approved / confirmedSaque aprovado/confirmado paidSaque concluído com sucesso refused / failedSaque recusado/falhou canceledSaque cancelado
# Fluxo de Status do Saque
stateDiagram-v2
state "pending" as pending
state "processing" as processing
state "confirmed" as confirmed
state "paid" as paid
state "refused" as refused
state "canceled" as canceled
[*] --> pending: POST /v1/withdrawals (debita o saldo disponível)
pending --> processing: em processamento
pending --> canceled: cancelado
pending --> refused: recusado
processing --> confirmed: confirmado
processing --> paid: concluído
processing --> refused: falhou
confirmed --> paid
paid --> [*]
refused --> [*]
canceled --> [*]
# Webhooks Acionados
Evento Descrição withdrawal.createdAcionado quando o saque é criado. withdrawal.pendingAcionado quando o saque entra em estado pendente (emitido junto do created). withdrawal.processingAcionado quando o saque está em processamento. withdrawal.confirmedAcionado quando o saque é aprovado/confirmado (status approved/confirmed). withdrawal.refusedAcionado quando o saque é recusado (status failed). withdrawal.canceledAcionado quando o saque é cancelado.
# 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.
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.