Visão geral
O recurso de Carteiras é um componente fundamental da Selectwin API, permitindo o gerenciamento de contas bancárias para recebimento de valores de transações processadas pela plataforma. Este recurso
Introdução
O recurso de Carteiras é um componente fundamental da Selectwin API, permitindo o gerenciamento de contas bancárias para recebimento de valores de transações processadas pela plataforma. Este recurso possibilita configurar múltiplas contas de destino para liquidação, com suporte para diferentes bancos e tipos de conta, facilitando a gestão financeira de sua empresa.
A API de Carteiras foi projetada com foco na segurança, integração bancária e flexibilidade, permitindo que os desenvolvedores implementem soluções robustas para gestão financeira e recebimento de valores.
Conceito e Funcionalidade
As carteiras representam contas bancárias dentro da plataforma, armazenando de forma segura as informações necessárias para processar transferências e liquidações financeiras. Este recurso permite que os vendedores configurem destinos para recebimento dos valores provenientes de vendas e outras operações financeiras.
Cada carteira está associada a um vendedor específico e pode ser utilizada em diversas operações financeiras, como recebimento de liquidações, saques e transferências. Uma carteira pode ser marcada como principal, sendo utilizada como destino padrão para as liquidações automáticas.
Estrutura do Objeto Carteira
O objeto Carteira contém informações detalhadas sobre a conta bancária, titular e configurações. A estrutura completa (create/read) inclui:
{
"id": "wall_01hqzvabc",
"name": "Minha Carteira Principal",
"holderName": "João Santos",
"bankName": null,
"bankCode": "260",
"routingNumber": "0001",
"accountNumber": "11111111-5",
"accountType": "checking",
"pixKey": null,
"primary": true,
"enabled": true,
"updatedAt": "2026-04-12T17:56:33.000Z",
"createdAt": "2026-04-12T17:56:33.000Z",
"merchant": {
"name": "Seller Name",
"merchantId": "bus_1234567890",
"isSubAccount": false
},
"_links": { "self": { "href": "https://api.selectwin.io/v1/wallets/wall_01hqzvabc", "method": "GET", "description": "Read a wallet." } }
}Campos do Objeto
| Campo | Tipo | Descrição |
|---|---|---|
id | string | Identificador (wall_*) |
name | string | Nome descritivo |
holderName | string | Titular (preenchido a partir dos dados da empresa) |
bankName | string | null | Nome do banco (atualmente sempre null — lookup COMPE é evolução futura) |
bankCode | string | null | Código do banco |
routingNumber | string | null | Agência |
accountNumber | string | null | Conta |
accountType | string | Tipo de conta — sempre checking |
pixKey | string | null | Chave PIX (atualmente sempre null — carteiras PIX são evolução futura) |
primary | boolean | Carteira principal (destino padrão de liquidação) |
enabled | boolean | Carteira habilitada |
createdAt / updatedAt | string | Timestamps ISO 8601 |
merchant | object | Bloco merchant (name, merchantId, isSubAccount) — apenas em respostas de recurso |
_links | object | HATEOAS — apenas em respostas de recurso (omitido nos itens de list-all) |
Notas de fidelidade (respostas da API):
- Respostas de recurso (create/read/set-primary) incluem
merchant+_linksno root. - List (
/v1/wallets): envelope paginado{ offset, limit, total, page, hasMore, data, merchant, _links }. - List-all (
/v1/wallets/listall): array simples de carteiras (cada item carrega o objeto completo, mas sem_links). - Delete:
{ id, resource:"wallet", deleted:true, merchant, _links }.
Sem campo de status: a carteira não possui um campo
status(não há fluxopending → enabled → rejected). O estado da carteira é descrito pelos booleanosprimaryeenabled. Não existem endpoints de atualização de dados bancários nem de habilitar/desabilitar pela API pública; a única mutação além de criar/excluir é definir a carteira como principal (set-primary).
Recursos Disponíveis
| Recurso | Método | Endpoint | Escopo | Descrição |
|---|---|---|---|---|
| Criar Carteira | POST | /v1/wallets | wallets:create | Cria uma nova carteira (retorna o objeto completo com merchant/_links) |
| Consultar Carteira | GET | /v1/wallets/{walletId} | wallets:read | Obtém detalhes completos |
| Listar Carteiras | GET | /v1/wallets | wallets:list | Lista paginada (com merchant/_links) |
| List All | GET | /v1/wallets/listall | wallets:list | Lista sem paginação (array simples) |
| Definir como Principal | PATCH | /v1/wallets/{walletId}/set-primary | wallets:update | Marca a carteira como destino padrão de liquidação |
| Excluir Carteira | DELETE | /v1/wallets/{walletId} | wallets:delete | Arquiva a carteira (confirmação com merchant/_links) |
Webhooks Acionados
| Evento | Descrição |
|---|---|
wallet.created | Acionado quando uma nova carteira é criada no sistema. |
wallet.deleted | Acionado quando uma carteira é removida (arquivada) do sistema. |
Apenas
wallet.createdewallet.deletedsão emitidos. Não há eventoswallet.pending/enabled/disabled/rejected.
Casos de Uso Comuns
- Marketplace: Configuração de múltiplas carteiras para diferentes vendedores ou lojas
- E-commerce: Configuração de carteira principal para recebimento de valores de vendas
- Gestão Financeira: Direcionamento de recebíveis para diferentes contas baseado em regras de negócio
- Contabilidade: Separação de recebimentos por categoria ou área de negócio
- Empresas com Múltiplas Filiais: Configuração de carteiras específicas para cada unidade
Melhores Práticas
- Sempre valide os dados bancários antes de criar uma carteira para evitar problemas de liquidação
- Utilize o campo
primarypara designar uma carteira como principal quando apropriado - Adote nomes descritivos para facilitar a identificação das carteiras
- Verifique se a carteira existe antes de tentar operações como exclusão
- Utilize filtros na listagem para localizar carteiras específicas mais facilmente
- Considere o contexto de uso ao decidir entre criar múltiplas carteiras ou centralizar em uma única
- Mantenha as informações atualizadas para evitar falhas nas transferências bancárias
Solução de Problemas Comuns
| Problema | Possível Causa | Solução Recomendada |
|---|---|---|
409 Conflict ao criar carteira | Já existe uma carteira com os mesmos dados bancários (dedupe) | Reutilize a carteira existente em vez de recriá-la |
400 bankCodeNotSupported | Código do banco não suportado | Verifique se o código do banco é válido e suportado |
| Valores sendo direcionados para carteira errada | Múltiplas carteiras com flag primary | Use PATCH /v1/wallets/{walletId}/set-primary para definir a carteira principal correta |
404 walletNotFound | ID de carteira inválido ou carteira arquivada | Verifique o wall_* informado |
409 walletHasPendingWithdrawal ao excluir | Há um saque em andamento para esta carteira | Aguarde a conclusão do saque antes de excluir a carteira |
Integração com Outros Recursos
O recurso de Carteiras integra-se com:
- Finance: Carteiras são destinos para saques e liquidações financeiras
- Transactions: Valores processados em transações são direcionados para carteiras
- Webhooks: Notificações em tempo real sobre mudanças de status nas carteiras
- Receivables: Recebíveis são liquidados nas carteiras configuradas
How is this guide?