SelectwinSelectwin

Cartões - Visão Geral

Introdução

O recurso de Cartões é um componente fundamental da Selectwin API, permitindo tokenizar e gerenciar os cartões dos clientes. Este recurso possibilita transações online, facilita pagamentos recorrentes e oferece uma experiência de compra simplificada para os usuários finais.

A API de Cartões foi projetada com foco na segurança e na facilidade de integração, permitindo que os desenvolvedores implementem soluções de pagamento robustas e confiáveis.

Conceito e Funcionalidade

Os cartões representam instrumentos de pagamento tokenizados dentro da plataforma: a sua integração usa a referência (card_...), nunca o número do cartão. Este recurso permite que os clientes salvem seus métodos de pagamento para uso futuro, eliminando a necessidade de inserir dados de cartão repetidamente.

Cada cartão está associado a um cliente específico e pode ser utilizado em diversas operações financeiras, como pagamentos únicos, assinaturas, cobranças recorrentes e reembolsos.

Autenticação e Base URL

  • Base URL: https://api.selectwin.io/v1
  • Header de autenticação: SelectKey: sk_test_... (sandbox) ou SelectKey: sk_live_... (produção). O ambiente da chave (live/sandbox) define em qual namespace o cartão é criado e listado.
  • Escopos: cards:create, cards:read, cards:list, cards:delete.

Como um cartão entra

CaminhoPor onde passa o númeroQuando usar
Tokenização no navegador → tokeno navegador do compradorpágina de pagamento própria (plugins, apps)
Criar Cartão com os dados completoso seu servidorintegrações servidor-a-servidor
Checkout hospedado (Sessions)só a página da Selectwinquando você não quer a página

Estrutura do Objeto Cartão

O objeto Cartão contém informações sobre o instrumento de pagamento, porém com restrições de segurança para proteger dados sensíveis. A estrutura básica inclui:

JSON
{
  "id": "card_01hqzvabc",
  "holderName": "João Silva",
  "brand": "Visa",
  "firstDigits": "411111",
  "lastDigits": "1111",
  "expirationMonth": "12",
  "expirationYear": "2030",
  "primary": true,
  "active": true,
  "valid": true,
  "verified": true,
  "associated": 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/cards/card_01hqzvabc",
      "method": "GET",
      "description": "Read a card."
    }
  }
}

Notas importantes:

  • O objeto de cartão não possui campo metadata.
  • As flags de saída usam os nomes primary, active, valid, verified, associated (sem o prefixo is).
  • associated pode ser null — ver abaixo.
  • brand é retornado capitalizado (ex.: Visa, Mastercard, Amex, Elo), não em minúsculas.
  • holderName é normalizado para Title Case na criação (ex.: joão silva → João Silva).
  • Exemplos de resposta de recursos individuais incluem merchant + _links. A estrutura de cada item de lista é mais leve (sem merchant/_links por item).

Recursos Disponíveis

RecursoMétodoEndpointDescrição
Criar CartãoPOST/v1/cardsCria um novo cartão para um cliente
Consultar CartãoGET/v1/cards/{cardId}Obtém detalhes de um cartão específico
Listar CartõesGET/v1/cardsLista cartões com opções de paginação e filtros
Excluir CartãoDELETE/v1/cards/{cardId}Remove um cartão do sistema

Segurança

  1. Tokenização - A Selectwin tokeniza o cartão: a sua integração nunca precisa guardar dados de cartão, só a referência (card_...)
  2. A resposta da API não devolve dados sensíveis - Apenas bandeira e primeiros/últimos dígitos, para identificação
  3. Dados protegidos em trânsito - Toda comunicação com a API usa TLS 1.2 ou superior

Bandeiras Suportadas

A bandeira é detectada automaticamente a partir do número do cartão. A coluna Código é o valor usado na lista de bandeiras aceitas; o campo brand retornado na resposta usa o valor capitalizado.

BandeiraCódigo (brandType)brand retornado
VisavisaVisa
MastercardmastercardMastercard
American ExpressamexAmex
EloeloElo
HipercardhipercardHipercard
Diners ClubdinersclubDinersclub
DiscoverdiscoverDiscover
JCBjcbJcb

Webhooks Acionados

EventoDescrição
card.createdAcionado quando um novo cartão é registrado no sistema
card.updatedAcionado quando os dados de um cartão são alterados
card.deletedAcionado quando um cartão é removido do sistema
card.expiredAcionado quando o token de um cartão expira

Casos de Uso Comuns

  • Pagamentos Recorrentes: Armazene cartões para cobranças automáticas em assinaturas
  • Checkout Simplificado: Permita que clientes utilizem cartões salvos para novas compras
  • Marketplace: Armazene cartões para pagamentos a múltiplos vendedores
  • Gestão de Métodos de Pagamento: Permita que clientes gerenciem seus cartões salvos
  • Transações One-Click: Implemente compras com um clique para melhorar a conversão
  • Análise de Risco: Utilize informações de cartão para avaliação de risco nas transações

Melhores Práticas

  1. Sempre valide os dados do cartão antes de enviá-los para a API
  2. Utilize tokenização quando disponível para maior segurança
  3. Implemente tratamento de erros adequado para lidar com falhas nas requisições
  4. Mantenha a interface do usuário atualizada com os cartões disponíveis
  5. Verifique a validade dos cartões antes de utilizá-los em transações
  6. Ofereça opções para definir cartão padrão para melhorar a experiência do usuário
  7. Notifique clientes sobre cartões próximos ao vencimento para evitar falhas em pagamentos futuros

Solução de Problemas Comuns

ProblemaPossível CausaSolução Recomendada
Falha na criação do cartãoDados do cartão inválidosVerifique se o número, data de validade e nome do portador estão corretos
Erro "Cartão não autorizado"Cartão com restriçõesSugira ao cliente utilizar outro cartão ou entrar em contato com o banco emissor
Cartão não aparece na listagemFiltros incorretos na consultaVerifique os parâmetros de filtro ou tente sem filtros
Erro "Cartão expirado"Data de validade ultrapassadaSolicite ao cliente um cartão com data de validade válida
Falha ao processar pagamentoFundos insuficientes ou cartão bloqueadoSugira ao cliente verificar o saldo ou status do cartão com o banco emissor
Erro na validação do CVVCódigo de segurança incorretoSolicite ao cliente verificar e reinserir o código de segurança correto
Cartão recusado por análise de riscoAlto risco de fraude detectadoSugira ao cliente utilizar outro método de pagamento ou entrar em contato com o suporte

Integração com Outros Recursos

O recurso de Cartões integra-se com:

  • Customers: Cartões são associados a clientes específicos através do customerId
  • Transactions: Cartões podem ser utilizados em transações para processamento de pagamentos
  • Wallets: Cartões podem ser adicionados a carteiras digitais para facilitar pagamentos
  • Utils/Card-Bin-Validation: Serviço de validação de BIN para verificação e identificação de cartões
  • Simulators: Simulações de pagamento podem ser realizadas com base em informações de cartão

associated: null — o cartão de porta do comprador antes da 1ª cobrança aprovada

associated diz se o cartão foi associado ao cliente — a validação de valor zero, que pergunta ao emissor se o cartão é bom sem cobrar nada. Quando o cartão entra por uma porta do comprador — o checkout hospedado, o portal do assinante, o cartão enviado em payment.card numa cobrança ou assinatura e o token cunhado no navegador do comprador (também quando salvo pela conta em POST /v1/cards) — esse resultado não é exibido à conta no cartão criado, antes da primeira cobrança aprovada com ele:

Situaçãoassociated
Cartão criado pela própria conta em POST /v1/cards com os dados completosfalse na criação; depois true / false, como sempre
Cartão do checkout hospedado, do portal, de payment.card numa cobrança/assinatura ou criado por token (em POST /v1/cards ou na cobrança), sem cobrança aprovadanull (pendente) — com a validação feita ou adiada, o cartão criado responde o mesmo
O mesmo cartão depois de uma cobrança aprovada (aprovada, estornada, contestada)true / false

A exceção é o token recusado na validação prévia — em POST /v1/cards ou em payment.card.token numa cobrança ou assinatura: a chamada responde 422 cardDeclined e o cartão não é criado (veja os erros em Criar Cartão e em Tokenização no navegador). Gere outro token com outro cartão.

Vale em todos os lugares em que o cartão aparece: GET /v1/cards/:id, GET /v1/cards (inclusive ?holderid=), o cartão embutido em GET /v1/customers/:id e nos eventos customer.*, e os eventos card.created, card.updated e card.expired. O motivo: a validação de valor zero responde "este cartão é válido?" sem cobrança, sem antifraude e sem tarifa — exibida para quem não a fez, vira um verificador de cartão roubado. A venda não depende do campo: a cobrança associa o cartão no caminho governado (antifraude, risco, tarifas) e o resultado dela é o da transação.

Atualizado em 17 de outubro de 2026

Preferências de cookies

Hoje o site usa só cookies essenciais: nenhuma ferramenta de medição ou de anúncios está ligada, e nada é compartilhado com terceiros. Se isso mudar, você decide aqui antes de qualquer coisa ser carregada.

  • Mantêm o site funcionando: segurança, a sua escolha sobre cookies e preferências como a versão da documentação. Não dependem de consentimento.

    Sempre ativos